numpy.insert

numpy.insert(arr, obj, values, axis=None)[源代码]

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

参数
arrarray_like

输入数组。

objint、slice或int序列

定义一个或多个索引的对象, values 插入。

1.8.0 新版功能.

在以下情况下支持多个插入 obj 是单个标量或具有一个元素的序列(类似于多次调用insert)。

valuesarray_like

要插入的值 arr . 如果类型 values 不同于 arrvalues 转换为 arr . values 应该是这样的形状 arr[...,obj,...] = values 是合法的。

axis可选的

插入轴 values . 如果 axis 那时没有 arr 先展平。

返回
out恩达雷

一份 arr 具有 values 插入的。注意 insert 未就地出现:返回新数组。如果 axis 没有, out 是扁平数组。

参见

append

在数组末尾附加元素。

concatenate

沿现有轴联接一系列数组。

delete

从数组中删除元素。

笔记

注意,对于较大尺寸的嵌件 obj=0 行为与 obj=[0] 就像 arr[:,0,:] = values 不同于 arr[:,[0],:] = values .

实例

>>> a = np.array([[1, 1], [2, 2], [3, 3]])
>>> a
array([[1, 1],
       [2, 2],
       [3, 3]])
>>> np.insert(a, 1, 5)
array([1, 5, 1, ..., 2, 3, 3])
>>> np.insert(a, 1, 5, axis=1)
array([[1, 5, 1],
       [2, 5, 2],
       [3, 5, 3]])

序列和标量之间的差异:

>>> np.insert(a, [1], [[1],[2],[3]], axis=1)
array([[1, 1, 1],
       [2, 2, 2],
       [3, 3, 3]])
>>> np.array_equal(np.insert(a, 1, [1, 2, 3], axis=1),
...                np.insert(a, [1], [[1],[2],[3]], axis=1))
True
>>> b = a.flatten()
>>> b
array([1, 1, 2, 2, 3, 3])
>>> np.insert(b, [2, 2], [5, 6])
array([1, 1, 5, ..., 2, 3, 3])
>>> np.insert(b, slice(2, 4), [5, 6])
array([1, 1, 5, ..., 2, 3, 3])
>>> np.insert(b, [2, 2], [7.13, False]) # type casting
array([1, 1, 7, ..., 2, 3, 3])
>>> x = np.arange(8).reshape(2, 4)
>>> idx = (1, 3)
>>> np.insert(x, idx, 999, axis=1)
array([[  0, 999,   1,   2, 999,   3],
       [  4, 999,   5,   6, 999,   7]])