如何通过索引获取矩阵行?

时间:2016-08-25 20:14:45

标签: python numpy scipy

假设我们有一个矩阵X和一个目标列y如下:

import numpy as np
X = np.ones([10,2])
for i in range(0,X.shape[0]):
    X[i][0] = i
y = [0,1,2,1,0,0,1,2,3,3]

我希望根据y的值获取X行。从上面的小例子:

对于y == 0,我希望得到X行:

[[0 1]
[4 1]
[5 1]]

对于y == 3,我希望得到X行:

[[8 1]
[9 1]]

等等。 我该如何解决这个问题?

我也试过

print(X[y == 0][:])

但它不起作用。

1 个答案:

答案 0 :(得分:0)

您必须将普通python array转换为numpy.ndarray,如下所示

Y=np.array(y)
print(X[Y == 0][:])

你会得到:

[[ 0.  1.]
 [ 4.  1.]
 [ 5.  1.]]