numpy学习笔记3-array切片
import numpy as np
array1 = np.array([[1,2,3,4],[5,6,7,8]])
array1
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
切片
array1_slice1 = array1[1][1:4]
#等价于array1_slice1 = array1[1, 1:4]
array1_slice2 = array1[1][1:3]
查看切片
array1_slice1
array([6, 7, 8])
array1_slice2
array([6, 7])
改变切片的元素
array1_slice1[:] = 0
#等价于arra1y_slice1[:] = [0,0,0]
此时
array1_slice1
[0, 0, 0]
array1
array([[1, 2, 3, 4],
[5, 0, 0, 0]])
注意原始数组array1在切片部分的元素数值也发生了改变
array1_slice2
[0, 0]
此时原始数组array1的另一个切片slice2的相关元素也发生了改变
对array切片返回的是原始array的视图,对切片的操作会影响到原始数组
多维切片
array1[:2, 1:]
array([[2, 3, 4],
[0, 0, 0]])
array1[:2, 1]
array([2, 0])
array1[1]
array([5, 0, 0, 0])
array1[1, :]
array([5, 0, 0, 0])
array1[1:, :]
array([[5, 0, 0, 0]])
array1[1, :].shape
(4,)
array1[1:, :].shape
(1, 4)