如果给出类似
的数组a = array([[2,4,9,8,473],[54,7,24,19,20]])
那么如何编写值x和y之间的数组索引?
目前我有:
where(5 > a > 10)
如果我说的话,如果会输出一个输出:
where(a > 5)
但where函数不接受此命令,一旦它输出一个2维一维数组,有没有办法轻松堆叠它们?
答案 0 :(得分:1)
您可以使用逻辑运算符&
(和)|
(或)将不同的条件链接在一起,因此对于您的情况,您可以执行以下操作:
np.where((a > 5) & (a < 10))
# (array([0, 0, 1]), array([2, 3, 1]))
# here np.where gives a tuple, the first element of which gives the row index, while the
# second element gives the corresponding column index
如果您希望索引是一个数组,其中每一行代表一个元素,您可以堆叠它们:
np.stack(np.where((a > 5) & (a < 10)), axis=-1)
# array([[0, 2],
# [0, 3],
# [1, 1]])
或者@Divakar评论使用np.argwhere((a > 5) & (a < 10))
。
答案 1 :(得分:0)
您需要指定两个索引,一个是您要引用的内部数组,另一个是您引用的该数组的实际成员