arr2d = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
[ ]内没有逗号分隔,数组沿着轴0进行切片,表达式arr2d[:2]的含义为选择arr2d的前两行
arr2d[:2]
array([[1, 2, 3],
[4, 5, 6]])
[ ]内有逗号分隔,逗号前数组沿着轴0进行切片,逗号后沿着轴1进行切片。表达式arr2d[:2, 1:]表示取前两行但选择第一列及后面的列。
arr2d[:2, 1:]
array([[2, 3],
[5, 6]])
选择第二行但只选择前两列
arr2d[1, :2]
array([4, 5])
只选择第三列但只选择前两行
arr2d[:2, 2]
array([3, 6])
单独一个冒号表示选择整个轴上的数组
在选择第一列时,arr2d[:, :1]和arr2d[:, 0]返回的数组维度不同。arr2d[:, :1]返回二维数组,而arr2d[:, 0]返回一维数组
arr2d[:, :1]
array([[1],
[4],
[7]])
arr2d[:, 0]
array([1, 4, 7])
arr2d[:, :2]
array([[1, 2],
[4, 5],
[7, 8]])