繁体   English   中英

numpy二维数组,从2个数组中选择满足条件的索引

[英]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)

随机数组ab

[[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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM