Xio*_*g89 2 python arrays numpy python-2.7
如何计算具有少量数组的列表中某个整数的出现?例如,我想查找值2的出现次数.
import numpy as np
a = [np.array([2, 2, 1, 2]), np.array([1, 3])]
Run Code Online (Sandbox Code Playgroud)
预期产量:
[3, 0]
Run Code Online (Sandbox Code Playgroud)
谁能帮我?
一种方法是使用 Counter
In [3]: from collections import Counter
Run Code Online (Sandbox Code Playgroud)
给出所有数字的频率
In [4]: [Counter(x) for x in a]
Out[4]: [Counter({2: 3, 1: 1}), Counter({1: 1, 3: 1})]
Run Code Online (Sandbox Code Playgroud)
只计算数量 2
In [5]: [Counter(x)[2] for x in a]
Out[5]: [3, 0]
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用np.bincount方法来计算非负的int数组中每个值的出现次数.
In [6]: [np.bincount(x) for x in a]
Out[6]: [array([0, 1, 3], dtype=int64), array([0, 1, 0, 1], dtype=int64)]
Run Code Online (Sandbox Code Playgroud)
提取数量的计数 2
In [7]: [np.bincount(x)[2] for x in a]
Out[7]: [3, 0]
Run Code Online (Sandbox Code Playgroud)