Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用布尔向量选择Numpy 2D数组中的行_Python_Numpy - Fatal编程技术网

Python 使用布尔向量选择Numpy 2D数组中的行

Python 使用布尔向量选择Numpy 2D数组中的行,python,numpy,Python,Numpy,我有一个矩阵和一个布尔向量: >>>from numpy import * >>>a = arange(20).reshape(4,5) array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) >>>b = asarray( [1, 1, 0, 1] ).reshape(-1,1) arr

我有一个矩阵和一个布尔向量:

>>>from numpy import *
>>>a = arange(20).reshape(4,5)
array([[ 0,  1,  2,  3,  4],
   [ 5,  6,  7,  8,  9],
   [10, 11, 12, 13, 14],
   [15, 16, 17, 18, 19]])

>>>b = asarray( [1, 1, 0, 1] ).reshape(-1,1)
array([[1],
   [1],
   [0],
   [1]])
现在我想选择这个矩阵中所有对应的行,其中向量中对应的索引等于零

>>>a[b==0]
array([10])
如何使其返回此特定行

[10, 11, 12, 13, 14]

b
的形状有点奇怪,但如果你能将其打造成一个更好的索引,那么这是一个简单的选择:

idx = b.reshape(a.shape[0])
print a[idx==0,:]

>>> [[10 11 12 13 14]]
您可以将其理解为“选择索引为0的所有行,并为每一行选择所有列”。您期望的答案实际上应该是一个列表列表,因为您需要符合条件的所有行