使用numpy中的行和列选择构造矩阵

使用numpy中的行和列选择构造矩阵,numpy,matrix,Numpy,Matrix,在NumPy中,假设我有一个矩阵X: X = array([[3, 1, 4, 5], [5, 1, 2, 1], [4, 4, 0, 1], [0, 3, 0, 3], [1, 2, 3, 4]) 如何使用X的第一行(第0行)、第二行和最后一行(第3、4行)构造新矩阵 所得矩阵为: Y = array([[3, 1, 4, 5], [0, 3, 0, 3], [1, 2, 3, 4]) 我无法列出我想要为新矩阵包含的所有行,因为对于我拥有的数据,这就像选择原始矩阵的(20,60),(90,

NumPy
中,假设我有一个矩阵
X

X = array([[3, 1, 4, 5], [5, 1, 2, 1], [4, 4, 0, 1], [0, 3, 0, 3], [1, 2, 3, 4])
如何使用
X
的第一行(第0行)、第二行和最后一行(第3、4行)构造新矩阵

所得矩阵为:

Y = array([[3, 1, 4, 5], [0, 3, 0, 3], [1, 2, 3, 4])
我无法列出我想要为新矩阵包含的所有行,因为对于我拥有的数据,这就像选择原始矩阵的(20,60),(90,120)行来构造新矩阵一样。

用于获取那些连接的行索引,并简单地索引到输入数组的行中,如下所示-

X[np.r_[0, 3:5]]        # for sample case

X[np.r_[20:60, 90:120]] # for actual case
样本运行-

In [146]: X
Out[146]: 
array([[3, 1, 4, 5],
       [5, 1, 2, 1],
       [4, 4, 0, 1],
       [0, 3, 0, 3],
       [1, 2, 3, 4]])

In [147]: X[np.r_[0, 3:5]]
Out[147]: 
array([[3, 1, 4, 5],
       [0, 3, 0, 3],
       [1, 2, 3, 4]])
较大随机阵列上形状测试的样本运行-

In [150]: X = np.random.rand(200,10)

In [151]: X[np.r_[20:60, 90:120]].shape
Out[151]: (70, 10) # 70 rows selected