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)

posted @ 2019-05-23 22:41  babysteps  阅读(2107)  评论(0编辑  收藏  举报