numpy.insert 函数用于在数组的指定位置插入值。它不会修改原始数组,而是返回一个新的数组。若插入的 values 形状与目标位置的形状不匹配,NumPy 会自动广播(broadcast)。numpy.insert 需要重新分配内存并复制数据,在大量数据操作时可能会影响性能。本文主要介绍一下NumPy中insert方法的使用。

numpy.insert

numpy.insert(arr, obj, values, axis=None)      [source]

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

参数 :

arr :array_like

输入数组。

objint, slice 或 int的sequence

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

1.8.0版中的新功能。 

当obj是单个标量或具有一个元素的序列时,

支持多次插入(类似于多次调用insert)。

values :array_like

要插入到arr中的值。 

如果值的类型与arr的类型不同,

则将值转换为arr的类型。

 值的形状

应使arr [...,obj,...] = values合法。

axisint, 可选

沿其插入值的轴。 

如果axisNone

arr首先扁平。

返回值 :

out :ndarray

插入了值的arr副本。 请注意,

insert不会就地发生:

返回一个新数组。 如果axisNone

则out是一个扁平数组。

Notes

请注意,对于高维插入,obj = 0的行为与obj = [0]的行为非常不同,就像arr [:,0,:] = values 与arr [:,[0],:] = values是不同的一样。

例子

1)在一维数组中插入单个值

import numpy as np

arr = np.array([1, 2, 3, 4])
new_arr = np.insert(arr, 2, 99)  # 在索引 2 处插入 99
print(new_arr)

2)在一维数组中插入多个值

import numpy as np

arr = np.array([1, 2, 3, 4])
new_arr = np.insert(arr, [1, 3], [99, 88])  # 在索引 1 处插入 99,索引 3 处插入 88
print(new_arr)

3)在二维数组中插入行(axis=0)

import numpy as np

arr = np.array([[1, 2], [3, 4]])
new_arr = np.insert(arr, 1, [9, 9], axis=0)  # 在索引 1 处插入 [9, 9] 作为新行
print(new_arr)

4)在二维数组中插入列(axis=1)

import numpy as np

arr = np.array([[1, 2], [3, 4]])
new_arr = np.insert(arr, 1, [9, 9], axis=1)  # 在索引 1 处插入新列
print(new_arr)

5)在展平数组(axis=None)上插入值

import numpy as np

arr = np.array([[1, 2], [3, 4]])
new_arr = np.insert(arr, 2, 99)  # 先展平,再插入
print(new_arr)

推荐文档

相关文档

大家感兴趣的内容

随机列表