numpy.插入#

麻木的。insert ( arr , obj , value , axis = None ) [来源] #

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

参数
arr类似数组

输入数组。

obj int、切片或整数序列

定义在其之前插入值的一个或多个索引的对象。

1.8.0 版本中的新增功能。

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

类似数组的

要插入arr 的值。如果的类型与arr的类型不同,则值将转换为arr的类型。 价值观应该被塑造为 合法的。arr[...,obj,...] = values

int,可选

沿其插入值的轴。如果axis为 None 则首先将arr 展平。

返回
输出数组

插入值arr副本。请注意,这 不会就地发生:返回一个新数组。如果 axis为 None,则 out是一个展平数组。insert

也可以看看

append

将元素追加到数组末尾。

concatenate

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

delete

从数组中删除元素。

笔记

请注意,对于更高维度的插入,obj=0其行为与 非常不同,obj=[0]就像与 不同一样 。arr[:,0,:] = valuesarr[:,[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]])