[英]Get number of elements of array satisfying a list of conditionsin Python/Numpy
我有兩個大小相同的數組 N, array1
和array2
。 您基本上可以將其視為形狀為 (N,2) 的單個數組。 條目都是數字。 我有一個條件列表,我想查看有多少條目滿足所有這些條件,最好使用矢量化。 例如,條件可能類似於:
我想計算索引“i”的數量,以便 array1[i] 和 array2[i] 滿足上述所有條件。 例如,如果
array1 = np.array([1,2,3,4,5])
array2 = np.array([3,4,5,6,7])
那么滿足上述條件的唯一索引將是 3,因此滿足約束的索引數量將僅為 1。我正在考慮使用幾個numpy.logical_and
,但這看起來很丑陋。 我不知道是否有一種更簡潔的方法將幾個and
語句串在一起。
您可以執行以下操作:
x = np.array(array1>2)
y = np.array(array1<5)
z = np.array(x == y)
sum(z)
最短的方法是使用
np.count_nonzero(
(array1 > 2) &
(array1 < 5) &
(array2 > 4) &
(array2 < 7) &
(array2 % 2 == 0)
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.