我试图获得numpy 3d数组中每个子阵列的频率计数(无零)。但是,scipy.stats.itemfreq工具会返回2d数组中的频率计数。3D NumPy数组中每个子阵列或切片的频率计数
我得到的是:
array_3d= array([[[1, 0, 0],
[1, 0, 0],
[0, 2, 0]],
[[0, 0, 0],
[0, 0, 3],
[3, 3, 3]],
[[0, 0, 4],
[0, 0, 4],
[0, 0, 4]]])
>>> itemfreq(array_3d)[1:,]
# outputs
array([ 1, 2],
[ 2, 1],
[ 3, 4],
[ 4, 3]], dtype=int64)
虽然我想输出:
array([[ 1, 2, 2, 1],
[ 3, 4],
[ 4, 3]], dtype=object)
的想法是,奇数总是独特价值和偶数的频率。
另一个输出可以是:
array([ 1, 2, 0],
[ 2, 1, 0],
[ 3, 4, 1],
[ 4, 3, 2]], dtype=int64)
其中第三列表示3D阵列的子集数量。
我也对其他输出/解决方案开放!
提前致谢!
你能描述你试图解决的更高层次的问题吗? –