一、基本的索引和切片:
1、数组索引
返回来的都是视图,并不会对数据进行复制,如果想复制可以使用copy()
arr=np.arange(10)
print(arr)
arr[5]=8
print(arr)
arr[2:5]=6
print(arr)
输出结果:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array([0, 1, 2, 3, 4, 8, 6, 7, 8, 9])
array([0, 1, 6, 6, 6, 8, 6, 7, 8, 9])
numpy 设计的目的是处理大数据,如果每次操作都把数据进行复制,那会产生很大的性能浪费。如果需要得到副本而不是视图,则需要进行显式地复制, arr[5:8].copy()
2、切片索引
ndarry 地切片语法和 python 列表地一维对象差不多,如果是多维度地 ndarray 还可以在多个轴进行切片,也可以跟整数索引混合使用。如果是只用:的切片,那会得到和 array 相同维度地视图
arra2d=np.array([[1,2,3],[4,5,6],[7,8,9]])
arra2d[:2,1:]
arra2d[:2,1:2]
arra2d[2:]
输出结果:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
array([[2, 3],
[5, 6]])
array([[2],
[5]])
array([[7, 8, 9]])
可以看到,使用了非整数