花式索引
花式索引(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])]
花式索引总是将数据复制到新数组。