Python 二维数组、不等式与where函数
如果给定一个数组,如Python 二维数组、不等式与where函数,python,arrays,numpy,multidimensional-array,Python,Arrays,Numpy,Multidimensional Array,如果给定一个数组,如 a = array([[2,4,9,8,473],[54,7,24,19,20]]) 那么,如何写入数组的索引,这些索引的值介于x和y之间 目前我有: where(5 > a > 10) 然而,如果我说,例如: where(a > 5) 但是where函数不接受这个命令,一旦它接受了这个命令,它就应该输出一个2一维数组,有没有办法轻松地将它们堆叠起来?您需要指定两个索引,一个是指哪个内部数组,另一个是指哪个数组的实际成员,您可以使用逻辑运算符&和|或
a = array([[2,4,9,8,473],[54,7,24,19,20]])
那么,如何写入数组的索引,这些索引的值介于x和y之间
目前我有:
where(5 > a > 10)
然而,如果我说,例如:
where(a > 5)
但是where函数不接受这个命令,一旦它接受了这个命令,它就应该输出一个2一维数组,有没有办法轻松地将它们堆叠起来?您需要指定两个索引,一个是指哪个内部数组,另一个是指哪个数组的实际成员,您可以使用逻辑运算符&和|或将不同的条件链接在一起,因此对于您的情况,您可以执行以下操作:
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>5&a<10。你的意思是5