计算 numpy 数组中的出现次数

计算 numpy 数组中值的出现次数。这将有效:

>>> import numpy as np
>>> a=np.array([0,3,4,3,5,4,7])
>>> print np.sum(a==3)
2

逻辑是布尔语句产生一个数组,其中所请求值的所有出现都是 1 而其他所有出现的都是零。因此,总结这些给出了发生的数量。这适用于任何形状或 dtype 的数组。

我用两种方法来计算 numpy 中所有唯一值的出现次数。独特和 bincount。唯一自动展平多维数组,而 bincount 仅适用于仅包含正整数的 1d 数组。

>>> unique,counts=np.unique(a,return_counts=True)
>>> print unique,counts # counts[i] is equal to occurrences of unique[i] in a
[0 3 4 5 7] [1 2 2 1 1]
>>> bin_count=np.bincount(a)
>>> print bin_count # bin_count[i] is equal to occurrences of i in a
[1 0 0 2 2 1 0 1] 

如果你的数据是 numpy 数组,那么使用 numpy 方法然后将数据转换为泛型方法通常要快得多。