检查2d数组中的所有元素是否在Python中等于1

时间:2016-10-15 10:26:21

标签: python arrays

除了迭代嵌套循环并检查每个值是否等于1之外,Python最常用的方法是什么?

5 个答案:

答案 0 :(得分:4)

如果您正在使用numpy,则可以使用其每元素等式检查,然后调用生成的数组all方法来检查所有元素是否确实满足条件:

>>> import numpy as np
>>> c = np.array([[1,2], [3,4]])
>>> (c==1).all()
False
>>> c = np.array([[1,1], [1,1]])
>>> (c==1).all()
True

答案 1 :(得分:2)

使用 itertoools.chain 迭代“flattened”列表

all(x == 1 for x in itertools.chain(*my_list))

答案 2 :(得分:0)

生成器函数+ all可能是要走的路。

array_2D = [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
all(all(item == 1 for item in items) for items in array_2D)

另一个选择是首先展平数组,但python没有标准的方法来做到这一点。但是代码可以处理任何类型的维度(如果你把它弄得很深)!

答案 3 :(得分:0)

使用集合:

from itertools import chain
array = [[1,1,1],[1,0,1]]
if set(chain.from_iterable(array)) == {1}:
    print("all ones")

答案 4 :(得分:0)

您可以使用np.searchsortednp.apply_along_axis来查找任何维数组中的元素。