[英]Numpy 2d array, select indices satisfying conditions from 2 arrays
我有两个3x3阵列。 其中一个指示元素是否为黑色(例如0到白色,1为黑色),另一个指示元素的成本。 是否有一种很好的方法来获取例如所有黑色且其价格高于特定值的所有元素的索引? 我知道我可以使用np.where()从一个数组中进行选择,但是如何在两个数组上进行选择(如果它们具有相同的形状)
遵循Psidom和rayryeng的建议,我将添加np.where
的输出可以堆叠以以可读的“坐标”表示法显示索引列表,如下所示
import numpy as np
a = np.random.randint(0, 2, size=(3,3))
b = np.random.uniform(0, 10, size=(3,3))
print(a)
print(b)
print(np.where(a & (b > 4)))
print(np.vstack(np.where(a & (b > 4))).T)
随机数组a
和b
:
[[1 0 0]
[1 1 0]
[0 1 1]]
[[ 4.27082885 4.95718491 5.03538203]
[ 8.41593579 3.17425233 3.99337567]
[ 3.90636291 4.96133978 3.61849744]]
np.where
直接输出,其中两个条件a
非零且b>4
:
(array([0, 1, 2], dtype=int64), array([0, 0, 1], dtype=int64))
以人类友好的方式堆叠:
[[0 0]
[1 0]
[2 1]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.