[英]How to count the number of 1D arrays in a 2D array (Python)?
如果我有一个numpy 2D数组,请说:
a = [[1, 2, 3], [2, 3, 4], [3, 4, 5], [1, 2, 3]]
如何计算a中[1、2、3]的实例数? (在这种情况下,我要寻找的答案是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)
: array([ True, False, False, True], dtype=bool)
,总和就是其中所有True
值的计数
如果想要所有数组的计数,可以使用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)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.