np.insert()函数用法

insert()函数定义

insert(arr, obj, values, axis=None)

参数说明:

arr : 需要插入的数组,即Input array;
obj:向数组中插入值的位置,可以是int,slice等;
values:往数组中插入的值;
axis:可选,默认为None按行插入,axis=1时按列插入

因此函数定义可写做如下形式:
insert(原数组, 插入位置, 插入值, 默认按行插入(axis=1按列插入))

程序举例说明

行插入

import numpy as np

arr = 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 np

arr = 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 np

arr = 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 np

arr = 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]

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream_Bri

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值