numpy数组的切片和索引
- 基本切片的语法是array[i: j: k],其中i是起始索引,j是停止索引,k是步长(k≠0)
示例:
import numpy as np
x = np.array([0, 1, 2, 3, 4, 5, 6, 7])
print(x[1:6:2])
[1 3 5]
- 假设n是被切片的维度中的元素的数量。若没给出i的值,则对于k>0,它默认是0,对于k<0,它默认为n-1。
- 如果没给出j,则对于k>0, 它默认为n,对于k<0,则默认为-n-1。如果没有给定k,则默认为1。
- x[::]与想x[:]相同,表示选择沿此轴的所有索引。
- 例 k=-1, 则是反转一个向量(第一个元素变为最后一个)
print(x[::-1])
[7 6 5 4 3 2 1 0]
高级索引
- 纯整数数组索引
x = np.array([[1, 2],
[3, 4],
[5, 6]])
print(x[[0, 1, 2], [0, 1, 0]])
[1 4 5]
- 应使用高级索引从4x4数组中选择角元素, 因此,需要选择列是 [0,3] 中的一个,行是 [0,3] 中的一个的所有元素。 要使用高级索引,需要显式 选择所有元素。
a = np.arange(16).reshape(4, 4)
print(a)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
rows = np.array([[0, 0],
[3, 3]])
columns = np.array([[0, 3],
[0, 3]])
print(a[rows, columns])
[[ 0 3]
[12 15]]
详细介绍参考
NumPy 中文网