2017-07-18 69 views
0

我有两个3x3阵列。其中一个指示元素是否是黑色的(比方说0的白色,1的黑色)以及另一个元素的成本是多少。有没有一种很好的方式来获得例如所有黑色元素的指数,并且它们的价格高于某个值?我知道我可以使用np.where()从一个数组中进行选择,但是如何在两个数组中进行选择(如果它们具有相同的形状)Numpy 2d阵列,从2个阵列中选择满足条件的索引

+1

在这个例子中,你可以总结阵列和发现的2 – asongtoruin

+0

或'np.where(一所有实例&b)' – Psidom

+0

这只是一个例子来说明我想实现的目标,我会改变它。 – zlenyk

回答

2

根据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:的np.where

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

直接输出两个条件NS a非零和b>4

(array([0, 1, 2], dtype=int64), array([0, 0, 1], dtype=int64)) 

在人类友好的方式叠放:

[[0 0] 
[1 0] 
[2 1]]