index slice

ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样

In [1]:
import numpy as np
In [8]:
arr = np.arange(1, 10)
print(arr)
print(arr[0])    # 使用索引访问
print(arr[1:3])  # 使用切片访问
print(arr[0:-1:2])
[1 2 3 4 5 6 7 8 9]
1
[2 3]
[1 3 5 7]
In [32]:
# 多维数组也可以使用索引和切片访问
m = np.array([[1,2,3],
              [4,5,6],
              [7,8,9]])
print(m[1:]) # 获取后两行
[[4 5 6]
 [7 8 9]]
In [34]:
print(m[:2])  # 获取前两行
[[1 2 3]
 [4 5 6]]
In [28]:
print(m[... , 1]) # 获取索引为1的列
[2 5 8]
In [29]:
print(m[1, ...]) # 获取索引为1的行
[4 5 6]
In [30]:
print(m[1:, ...]) # 获取索引从1开始的所有行, 注意 第一维的写法是 切片, 效果同 m[1:]
[[4 5 6]
 [7 8 9]]
In [31]:
print(m[..., 1:]) # 获取索引从1开始的所有列, 注意 第二维的写法是 切片
[[2 3]
 [5 6]
 [8 9]]