从2D numpy中提取一行行

时间:2018-07-16 21:42:47

标签: python python-3.x numpy

我知道这个问题可能微不足道,但是我正在学习中。给定numpy 2D数组,我想使用切片方法获取一行行。例如,从下面的矩阵中,我只想提取前三行,所以从:

[[  1   2   3   4]
 [  5   6   7   8]
 [  9  10  11  12]
 [ 28   9 203 102]
 [577 902  11 101]]

我想要:

[[  1   2   3   4]
 [  5   6   7   8]
 [  9  10  11  12]]

我的代码实际上仍然缺少某些内容。我非常感谢。

X = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [28, 9, 203, 102], [577, 902, 11, 101]]
X = np.array(X)
X_sliced = X[3,:]
print(X_sliced)

1 个答案:

答案 0 :(得分:1)

可以将numpy矩阵视为列表的嵌套列表。元素1是列表1,元素2是列表2,依此类推。

您可以使用x [n]提取一行,其中n是您想要的行号。

您可以使用x [n:m]提取一定范围的行,其中n是第一行,m是最后一行。

如果省略n或m并执行x [n:]或x [:m],Python将使用列表的开头或开头来填充空白。例如,x [n:]将返回从n到末尾的所有行,而x [:m]将返回从开始到m的所有行。

您可以通过执行x [:3]来完成所需的工作,这相当于要求x [0:3]。