使用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