通俗来讲取一个数组arr[i] 中某一段段元素称为 切片

一维数组和二维数组相比有区别

import numpy as np# arr[i:j] 表示片取 ;参数设置是arr[start,end,step]# 一维数组 切片arr = np.arange(6)  # [0,1,2,3,4,5]print(arr[1:2])  # [1] 输出从a[i:j-1] 的值print(arr[1:3])  # [1 2]print(arr[:2])  # [0 1] start参数的位置没有值,表示start(i)“缺省”,输出从a[0:j-1] 的值 即i=0print(arr[2:])  # [2 3 4 5] end参数的位置没有值,表示end(j)“缺省”,输出从a[2:j] 的值print(arr[::2])  # [0 2 4] i位置被 : 代替,arr[::j] j表示步长,从a[0]开始个j个元素输出print(arr[1::])  # [1 2 3 4 5] j位置被 : 代替,arr[i::] 表示从i开始,到最后,片取输出print(arr[::])  # [0 1 2 3 4 5] 输出完整数组print(arr[...], '\n')# 二维数组 切片arr1 = np.arange(9).reshape(3, 3)  # arr1[i:j]# [[0 1 2]#  [3 4 5]#  [6 7 8]]print(arr1[1:2])  # [[3 4 5]] 输出第i行,第j-1列print(arr1[1:3])# [[3 4 5]#  [6 7 8]]print(arr1[:2])# [[0 1 2]#  [3 4 5]] # i 缺省 输出前 j-1行print(arr1[2:])  # [[6 7 8]] j 缺省 表示输出后i行print(arr1[::2])#  [[0 1 2]#   [6 7 8]] “2”此时表示步长,从第0行开始间隔”2-1“行输出print(arr1[2::])#  [[6 7 8]] 从第2行开始输出print(arr1[1, 0])  # 3print(arr1[:, 1])  # [1 4 7] 输出第一列print(arr1[1, :])  # [3 4 5] 输出第一行print(arr1.mean(axis=1))  # [1. 4. 7.] 计算每行的平均值print(arr1.mean(axis=0))  # [3. 4. 5.] 计算每列的平均值print(arr1.argmax())  # 8 获取最大值索引# 遍历 索引法for i in range(3):    for j in range(3):        print(arr1[i, j])# 遍历 np.nditer()for i in np.nditer(arr1):    print(i)

切片引索维负数时称为负切片:

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7])  # 从末尾开始的索引 3 到末尾开始的索引 1,对数组进行切片print(arr[-3:-1])  # [5 6]

二维数组的切片:

import numpy as np# 片取第一行索引维1到4-1的元素arr = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]) print(arr[1, 1:4]) # [7 8 9]