数组操作例程#

基本操作#

copyto(dst, src[, casting, where])

将值从一个数组复制到另一个数组,根据需要进行广播。

ndim(a)

返回数组的维度数。

shape(a)

返回数组的形状。

size(a[, axis])

返回给定轴上的元素数量。

更改数组形状#

reshape(a, /[, shape, newshape, order, copy])

在不改变数组数据的情况下赋予其新的形状。

ravel(a[, order])

返回一个连续的扁平化数组。

ndarray.flat

数组上的一个一维迭代器。

ndarray.flatten([order])

返回一个数组的副本,该副本折叠成一维。

转置类操作#

moveaxis(a, source, destination)

将数组的轴移动到新的位置。

rollaxis(a, axis[, start])

向后滚动指定的轴,直到它位于给定的位置。

swapaxes(a, axis1, axis2)

交换数组的两个轴。

ndarray.T

转置数组的视图。

transpose(a[, axes])

返回一个轴已转置的数组。

permute_dims(a[, axes])

返回一个轴已转置的数组。

matrix_transpose(x, /)

转置矩阵(或矩阵堆栈)x

更改维度数#

atleast_1d(*arys)

将输入转换为至少有一维的数组。

atleast_2d(*arys)

将输入视为至少有两维的数组。

atleast_3d(*arys)

将输入视为至少有三维的数组。

broadcast

生成一个模拟广播的对象。

broadcast_to(array, shape[, subok])

将数组广播到新的形状。

broadcast_arrays(*args[, subok])

将任意数量的数组相互广播。

expand_dims(a, axis)

扩展数组的形状。

squeeze(a[, axis])

a中删除长度为一的轴。

更改数组类型#

asarray(a[, dtype, order, device, copy, like])

将输入转换为数组。

asanyarray(a[, dtype, order, like])

将输入转换为 ndarray,但传递 ndarray 子类。

asmatrix(data[, dtype])

将输入解释为矩阵。

asfortranarray(a[, dtype, like])

返回一个数组(ndim >= 1),其在内存中以 Fortran 顺序排列。

ascontiguousarray(a[, dtype, like])

返回一个在内存中连续的数组(ndim >= 1)(C 顺序)。

asarray_chkfinite(a[, dtype, order])

将输入转换为数组,并检查是否有 NaN 或 Inf。

require(a[, dtype, requirements, like])

返回一个满足要求的指定类型的 ndarray。

连接数组#

concatenate([axis, out, dtype, casting])

沿着现有轴连接一系列数组。

concat([axis, out, dtype, casting])

沿着现有轴连接一系列数组。

stack(arrays[, axis, out, dtype, casting])

沿着新轴连接一系列数组。

block(arrays)

从嵌套的块列表中组装一个 nd-array。

vstack(tup, *[, dtype, casting])

按顺序垂直(按行)堆叠数组。

hstack(tup, *[, dtype, casting])

按顺序水平(按列)堆叠数组。

dstack(tup)

按顺序深度方向(沿着第三个轴)堆叠数组。

column_stack(tup)

将一维数组作为列堆叠到二维数组中。

分割数组#

split(ary, indices_or_sections[, axis])

将数组分割成多个子数组,作为对ary的视图。

array_split(ary, indices_or_sections[, axis])

将数组分割成多个子数组。

dsplit(ary, indices_or_sections)

沿着第三个轴(深度)将数组分割成多个子数组。

hsplit(ary, indices_or_sections)

水平(按列)将数组分割成多个子数组。

vsplit(ary, indices_or_sections)

垂直(按行)将数组分割成多个子数组。

unstack(x, /, *[, axis])

沿着给定轴将数组分割成一系列数组。

平铺数组#

tile(A, reps)

通过重复 A reps 给定的次数来构造一个数组。

repeat(a, repeats[, axis])

重复数组中每个元素自身后的次数

添加和删除元素#

delete(arr, obj[, axis])

返回一个新的数组,其中沿着某个轴删除了子数组。

insert(arr, obj, values[, axis])

在给定轴上的给定索引之前插入值。

append(arr, values[, axis])

将值追加到数组的末尾。

resize(a, new_shape)

返回一个具有指定形状的新数组。

trim_zeros(filt[, trim])

从一维数组或序列中修剪前导和/或尾随零。

unique(ar[, return_index, return_inverse, ...])

查找数组的唯一元素。

pad(array, pad_width[, mode])

填充数组。

重新排列元素#

flip(m[, axis])

沿着给定轴反转数组中元素的顺序。

fliplr(m)

沿轴 1(左右)反转元素顺序。

flipud(m)

沿轴 0(上下)反转元素顺序。

reshape(a, /[, shape, newshape, order, copy])

在不改变数组数据的情况下赋予其新的形状。

roll(a, shift[, axis])

沿给定轴滚动数组元素。

rot90(m[, k, axes])

在由 axes 指定的平面内将数组旋转 90 度。