Python numpy array:检查array中的所有元素是否为0或2,为true

KKS*_*KKS 2 python numpy

如何检查数组中的所有元素在Python Numpy中是否为0或2?例如

if (all elements in c == 0) or   (all elements in c == 2):
    This is true
else : 
    This is False
Run Code Online (Sandbox Code Playgroud)

表示如果c = numpy.array[0,0,2]true

但是如果c=numpy.array[0,1,2]是这样false

有人可以给我一段代码吗?

Chr*_*ris 6

numpy.isin 专为此:

import numpy as np

arr1 = np.array([0, 0, 2])
arr2 = np.array([0, 1, 2])

np.isin(arr1, [0, 2]).all()
# True

np.isin(arr2, [0, 2]).all()
# False
Run Code Online (Sandbox Code Playgroud)

当然,这与ndim无关:

arr3 = np.random.randint(0, 3, (100, 100))
arr4 = np.random.choice([0,2], (100, 100))

np.isin(arr3, [0, 2]).all()
# False

np.isin(arr4, [0, 2]).all()
# True
Run Code Online (Sandbox Code Playgroud)