如何计算2D数组(Python)中1D数组的数量?

时间:2018-11-08 22:56:14

标签: python list numpy

如果我有一个numpy 2D数组,请说:

a = [[1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3]]

如何计算a中[1、2、3]的实例数? (在这种情况下,我要寻找的答案是2)

2 个答案:

答案 0 :(得分:2)

由于您说的是numpy数组而不是列表,所以您可以执行以下操作:

>>> a = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3]])
>>> sum((a == [1,2,3]).all(1))
2

(a == [1,2,3]).all(1)为您提供一个布尔数组,或者该行中的所有值均与[1,2,3]array([ True, False, False, True], dtype=bool)相匹配,并且其总和就是所有True值的计数在那里

答案 1 :(得分:1)

如果要计数 all 个数组,则可以使用unique

import numpy as np

a = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3]])
uniques, counts = np.unique(a, return_counts=True, axis=0)
print([(unique, count) for unique, count in zip(uniques, counts)])

输出

[(array([1, 2, 3]), 2), (array([2, 3, 4]), 1), (array([3, 4, 5]), 1)]