“”""
(1)基本的切片和索引
注意:当你将一个标量值赋值给一个切片时(如arr[5:8]=12),该值会自动传播到整个选区。
“”"
import numpy as np
arr = np.arange(7)
print(arr)
print(arr[5])
print(arr[1:3])
print(arr[1:])
print(arr[:3])
arr[0:2] = 13 # 在指定位置新增数据,原有数组往后移位
print(arr)
区别于数列
arr1 = [0,1,2,3,4,5,6]
print(arr1)
arr1[0:3] = [“a”] # 列表中arr[0:3]位置的内容,被替换成"a"
print(arr1)
print("-“30)
“”"
(2)多维数组的索引
在多维数组中,如果省略了后面的索引,则返回对象会是一个维度低一点的ndarray
如:在一个二维数组中,各索引位置上的元素不再是标量而是一维数组:
“”"
arr2 = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(arr2)
print(arr2[1]) # [4 5 6]
print(arr2[0][2]) # 3,取单个元素,第0行,第3列的元素
print(arr2[0,2]) # 3,取单个元素,第0行,第3列的元素
print("”*30)
“”"
(3)视图还是复制
视图:跟列表最重要的区别在于,数组切片是原始数组的视图。
这意味着数据不会被复制,修改切片,变动也会体现在原始数组arr中。
由于NumPy的设计目的是处理大数据,所以你可以想象一下,
假如NumPy坚持要将数据复制来复制去的话会产生何等的性能和内存问题。
“”"
arr3 = np.arange(10)
print(arr3)
slice = arr3[0:3]
print(