【发布时间】:2016-05-17 07:12:21
【问题描述】:
这是python中的一个数组:
T = np.array([[1,1,2],[2,1,1],[3,3,3]])
print np.where(T==1)
我想找到每个元素的出现次数。我尝试使用np.where,然后使用len(np.where)。但是np.where 的输出不允许使用len() 函数。
【问题讨论】:
-
这些答案对您的问题有用吗?
这是python中的一个数组:
T = np.array([[1,1,2],[2,1,1],[3,3,3]])
print np.where(T==1)
我想找到每个元素的出现次数。我尝试使用np.where,然后使用len(np.where)。但是np.where 的输出不允许使用len() 函数。
【问题讨论】:
使用numpy.unique,它返回数组中的唯一值和出现次数。该方法有一个名为return_counts 的标志,默认值为false,如下所示:
uniqueVals, count = numpy.unique(T, return_counts = true)
【讨论】:
numpy.unique 可以在没有reshape 的情况下工作,但是您传递什么参数来获取出现次数?
return_counts = true
您可以执行以下操作以显示数组T中元素1的重复次数:
>>> (T == 1).sum()
4
>>> (T == 2).sum()
2
【讨论】:
如果数组中整数的范围很小,您可以使用np.bincount
In [25]: T = np.array([[1,1,2],[2,1,1],[3,3,3]])
In [26]: np.bincount(T.reshape(-1))
Out[26]: array([0, 4, 2, 3]) # 0 showed up 0 times
# 1 showed up 4 times
# 2 showed up 2 times ...
【讨论】: