在一个numpy.array对象的列表中计算numpy.array对象的出现次数

3
如果我有一个列表:
a = [np.array([1,1,1]), np.array([1,1,1]), np.array([1,1,1])]

如何执行类似于 a.count(np.array([1,1,1])) 的操作?这会导致以下错误:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

是否有类似于.count()的函数?


你可以使用 len(a) 来返回长度。 - Mirodil
在这个例子中,你有一个由numpy对象组成的Python列表。 - dawg
count 使用 == 进行比较,对于数组来说是 逐元素 比较,导致出现了歧义错误。 - hpaulj
2个回答

1
你可以使用np.array_equalsum在生成器上进行操作:
>>> sum(np.array_equal(x, [1,1,1]) for x in a)
3

1
或者映射np.array_equal并将其应用于结果的count
map(lambda x: np.array_equal(np.array([1,1,1]),x), a).count(True)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接