insert(arr, obj, values, axis=None)
参数说明:
arr : 需要插入的数组,即Input array;
obj:向数组中插入值的位置,可以是int,slice等;
values:往数组中插入的值;
axis:可选,默认为None按行插入,axis=1时按列插入
因此函数定义可写做如下形式:
insert(原数组, 插入位置, 插入值, 默认按行插入(axis=1按列插入))
import numpy as nparr = np.arange(10).reshape(2, 5)
print(arr)
# 行插入
print(np.insert(arr, 1, 5)) # 在数组arr的第一个位置插入5"""
[[0 1 2 3 4][5 6 7 8 9]][0 5 1 2 3 4 5 6 7 8 9]
"""
如果没有设置axis=1,那么插入位置是先将原始数组展平为一维数组,从序号0开始往右计数,在对应的位置上插入要输入的值
import numpy as nparr = np.arange(10).reshape(2, 5)
print(arr)
print(np.insert(arr, 1, 5, axis=1)) # 在按列插入5
print(np.insert(arr, [1], [[1], [2]], axis=1))"""
# 输出的结果:
[[0 1 2 3 4][5 6 7 8 9]][[0 5 1 2 3 4][5 5 6 7 8 9]][[0 1 1 2 3 4][5 2 6 7 8 9]]"""
import numpy as nparr = np.arange(10).reshape(2, 5)
print(np.insert(b_arr, [2, 3], [5, 6]))# 原始位置的第二第三个插入
print(np.insert(b_arr, slice(2, 3), [5, 6]))# 在生成后的列表中第二第三个位置插入
print(np.insert(b_arr, [2, 2], [6.53, True]))# 取整输入,False是0"""
得到的结果显示:
[0 1 5 2 6 3 4 5 6 7 8 9]
[0 1 5 6 2 3 4 5 6 7 8 9]
[0 1 6 1 2 3 4 5 6 7 8 9]
"""
注意此处的slice(2, 3)是指插入位置为:在生成后的列表中序数为2和3。
import numpy as nparr = np.arange(10).reshape(2, 5)
print(arr)
print(np.insert(arr, 1, 5)) # 在数组a的第一个位置插入5
print(np.insert(arr, 1, 5, axis=1)) # 在数组a的中按列插入5
print(np.insert(arr, [1], [[1], [2]], axis=1))
b_arr = arr.flatten()
print(np.insert(b_arr, [2, 3], [5, 6]))# 原始位置的第二第三个插入
print(np.insert(b_arr, slice(2, 3), [5, 6]))# 在生成后的列表中第二第三个位置插入
print(np.insert(b_arr, [2, 2], [6.53, True]))# 取整输入,False是0
结果显示:
[[0 1 2 3 4][5 6 7 8 9]]
[0 5 1 2 3 4 5 6 7 8 9]
[[0 5 1 2 3 4][5 5 6 7 8 9]]
[[0 1 1 2 3 4][5 2 6 7 8 9]]
[0 1 5 2 6 3 4 5 6 7 8 9]
[0 1 5 6 2 3 4 5 6 7 8 9]
[0 1 6 1 2 3 4 5 6 7 8 9]