【发布时间】:2016-08-24 10:43:01
【问题描述】:
我正在尝试获取 numpy 3d 数组中每个子数组的频率计数(不包含零)。但是,scipy.stats.itemfreq 工具以二维数组的形式返回频率计数。
我得到的是:
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 数组中的子集编号。
我也对其他输出/解决方案持开放态度!
提前致谢!
【问题讨论】:
-
您能描述一下您要解决的更高层次的问题吗?
标签: python arrays numpy scipy frequency