Numpy数组高级索引
介绍
菜鸟教程参考:
NumPy 切片和索引
Numpy高级索引
示例
在 Python 中,NumPy 提供了强大的多维数组索引功能。以下是一些示例:
使用多维数组作为索引
示例 1:整数数组索引
你可以使用一个多维整数数组来索引另一个数组。例如:
import numpy as np
x = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
rows = np.array([[0, 0], [3, 3]])
cols = np.array([[0, 2], [0, 2]])
y = x[rows, cols]
print(y) # 输出: [[ 0 2]
# [ 9 11]]
示例 2:布尔数组索引
你可以使用布尔数组来索引多维数组。例如:
import numpy as np
x = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
mask = x > 5
print(x[mask]) # 输出: [ 6 7 8 9 10 11]
示例 3:花式索引
花式索引允许你使用多个数组来索引多维数组。例如:
import numpy as np
x = np.arange(32).reshape((8, 4))
print(x[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])])
# 输出:
# [[ 4 7 5 6]
# [20 23 21 22]
# [28 31 29 30]
# [ 8 11 9 10]]