索引相关

::: tip 另见

Indexing

:::

生成索引数组

方法 描述
c_ 将切片对象平移到第二个轴上并置。
r_ 将切片对象平移到沿第一个轴的连接。
s_ 为数组建立索引元组的更好方法。
nonzero(a) 返回非零元素的索引
where(condition, [x, y]) 根据条件返回从x或y中选择的元素。
indices(dimensions[, dtype, sparse]) 返回表示网格索引的数组。
ix_(*args) 从多个序列构造一个开放的网格。
ogrid nd_grid实例,它返回一个开放的多维“ meshgrid”。
ravel_multi_index(multi_index, dims[, mode, …]) 将边界模式应用于多索引,将索引数组的元组转换为平面索引的数组。
unravel_index(indices, shape[, order]) 将平面索引或平面索引数组转换为坐标数组的元组。
diag_indices(n[, ndim]) 返回索引以访问数组的主对角线。
diag_indices_from(arr) 返回索引以访问n维数组的主对角线。
mask_indices(n, mask_func[, k]) 给定掩码函数,将索引返回到访问(n,n)数组。
tril_indices(n[, k, m]) 返回 (n, m) 数组下三角的索引。
tril_indices_from(arr[, k]) 返回arr下三角的索引。
triu_indices(n[, k, m]) 返回 (n, m) 数组上三角的索引。
triu_indices_from(arr[, k]) 返回arr的上三角的索引。

类似于索引的操作

方法 描述
take(a, indices[, axis, out, mode]) 沿轴从数组中获取元素。
take_along_axis(arr, indices, axis) 通过匹配1d索引和数据切片从输入数组中获取值。
choose(a, choices[, out, mode]) 从索引数组和一组数组中构造一个数组以供选择。
compress(condition, a[, axis, out]) 沿给定轴返回数组的选定切片。
diag(v[, k]) 提取对角线或构造对角线阵列。
diagonal(a[, offset, axis1, axis2]) 返回指定的对角线。
select(condlist, choicelist[, default]) 根据条件返回从Choicelist中的元素中提取的数组。
lib.stride_tricks.as_strided(x[, shape, …]) 使用给定的形状和步幅在阵列中创建视图。

将数据插入数组

方法 描述
place(arr, mask, vals) 基于条件值和输入值更改数组的元素。
put(a, ind, v[, mode]) 用给定值替换数组的指定元素。
put_along_axis(arr, indices, values, axis) 通过匹配1D索引和数据切片将值放入目标数组中。
putmask(a, mask, values) 基于条件值和输入值更改数组的元素。
fill_diagonal(a, val[, wrap]) 填充任意维数的给定数组的主对角线。

迭代数组

方法 描述
nditer 高效的多维迭代器对象来迭代数组。
ndenumerate(arr) 多维索引迭代器。
ndindex(*shape) 用于索引数组的N维迭代器对象。
nested_iters() 创建用于嵌套循环的nditer
flatiter 要迭代数组的平面迭代器对象。
lib.Arrayterator(var[, buf_size]) 大数组的缓冲迭代器。