我有一个矩阵和一个布尔矢量:
>>>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]])
Run Code Online (Sandbox Code Playgroud)
现在我想选择此矩阵中的所有相应行,其中向量中的对应索引等于零.
>>>a[b==0]
array([10])
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能返回这个特定的行?
[10, 11, 12, 13, 14]
Run Code Online (Sandbox Code Playgroud)
的形状b有点奇怪,但如果您可以将其制作为更好的索引,那么这是一个简单的选择:
idx = b.reshape(a.shape[0])
print a[idx==0,:]
>>> [[10 11 12 13 14]]
Run Code Online (Sandbox Code Playgroud)
您可以将其理解为“选择索引为 0 的所有行,并为所选的每一行选取所有列”。您预期的答案实际上应该是一个列表列表,因为您要求提供与条件匹配的所有行。
| 归档时间: |
|
| 查看次数: |
5522 次 |
| 最近记录: |