转自https://blog.csdn.net/a394268045/article/details/79104219
稍微调整了一些顺序、增加了一些内容,个人感觉会更好理解一些。
(1)X[:,0]是numpy中数组的一种写法,表示对一个二维数组,取该二维数组第一维中的所有数据,第二维中取第0个数据,直观来说,X[:,0]就是取所有行的第0个数据, X[:,1] 就是取所有行的第1个数据。
举例说明:
import numpy as np
X = np.array([[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10, 11], [12, 13], [14, 15], [16, 17], [18, 19]])
print(X[:, 0])
- 1
- 2
- 3
- 4
X[:,0]输出结果是:
import numpy as np
X = np.array([[0,1],[2,3],[4,5],[6,7],[8,9],[10,11],[12,13],[14,15],[16,17],[18,19]])
print (X[:,1] )
- 1
- 2
- 3
- 4
(2)X[:, m:n],即取所有数据的第m到n-1列数据,含左不含右
例:输出X数组中所有行第1到2列数据
import numpy as np
X = np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,13,14],[15,16,17],[18,19,20]])
print (X[:,1:3])
- 1
- 2
- 3
- 4
输出结果:
X[:,1]输出结果是:
(3)X[n,:]是取第1维中下标为n的元素的所有值。
X[1,:]即取第一维中下标为1的元素的所有值,输出结果:
总结一下大概是这样:
- “,“ 分割对行和列的限制。
- :的slicing作用跟字符串[start, end, step] 左闭右开是一致的
- 举一反三的话 X[0,:] 我以为应该是取所有列的第0个数据, 但不是这样的!!!
import numpy as np
X = np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,13,14],[15,16,17],[18,19,20]])
print (X[0,:])
- 1
- 2
- 3
- 4
结果是 [0,1,2] 返回了第0个数组!!!
print([X[1,:]) 返回的是第1个数组!!!
个人还存在的问题是:很多数组组成矩阵的时候,每一个数组是行向量还是列向量?大概是线代没学好的问题,回去翻书!