numpy.insert¶
-
numpy.
insert
(arr, obj, values, axis=None)[source]¶ 在给定的索引之前沿给定轴插入值。
参数: arr:array_like
输入数组。
obj:int,slice或ints序列
定义插入值之前的索引的对象。
版本1.8.0中的新功能。
当obj是单个标量或具有一个元素的序列(类似于调用插入多次)时支持多次插入。
值:array_like
要插入arr的值。如果值的类型不同于arr的类型,则值被转换为arr的类型。值的形状应使
arr [...,obj,...] = 值 t4 >
是合法的。axis:int,可选
要插入值的轴。如果axis为None,则首先平铺arr。
返回: out:ndarray
插入了值的arr的副本。请注意,
insert
不会就地发生:返回一个新的数组。如果axis为None,则out是一个展平的数组。也可以看看
append
- 在数组末尾追加元素。
concatenate
- 沿现有轴连接数组序列。
delete
- 从数组中删除元素。
笔记
注意,对于高维插入obj = 0与obj = [0]非常不同,就像arr [:,0 ,:] = values t2 >与arr [:,[0],:] =值不同。
例子
>>> 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, 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, 6, 2, 2, 3, 3])
>>> np.insert(b, slice(2, 4), [5, 6]) array([1, 1, 5, 2, 6, 2, 3, 3])
>>> np.insert(b, [2, 2], [7.13, False]) # type casting array([1, 1, 7, 0, 2, 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]])