花式索引

花式索引(Fancy indexing)是NumPy术语,是指利用整数数组进行索引

假设创建8x4数组

arr = np.empty((8, 4))
for i in range(8):
    arr[i] = i

为了以特定顺序选取行子集,传入整数列表或ndarray

arr[[4, 3, 0, 6]]

使用负数索引将会从末尾开始选取行

arr[[-3, -5, -7]]

如果一次传入多个索引数组,将会返回一个一维数组

arr = np.arange(32).reshape((8, 4))
arr[[1, 5, 7, 2], [0, 3, 1, 2]]

如果希望得到预期矩形区域

arr[[1, 5, 7, 2]][:, [0, 3, 1, 2]]

或者是使用np.ix_函数,它可以将两个一维数组转换为一个用于选取方形区域的索引器

arr[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])]

花式索引总是将数据复制到新数组。

results matching ""

    No results matching ""