Python中numpy数组添加和删除元素的示例
创始人
2024-11-18 05:21:27
0次

在 numpy中,经常需要对数组元素进行添加和删除操作,如使用 append() 函数和 insert() 函数为数组添加元素,或者使用 delete() 函数返回删除了某个轴的子数组的新数组,以及使用 unique() 函数寻找数组内的唯一元素。下面分别介绍这些函数的运用。

append()函数

该函数是在数组的末尾添加元素,该函数会返回一个新数组,而原数组不变。使用 append()函 数的方法如下:

numpy.append(arr,values,axis)

对各个参数的说明:

  • 参数 arr 表示输入的数组;

  • values 表示向 arr 数组添加的元素,values 为数组,values 数组列维度与 arr 数组列维度相同;

  • axis 表示沿着水平或竖直方向完成添加操作的轴,axis 取 0 表示沿竖直方向操作,axis 取 1 表示沿水平方向操作。

如果未提供 axis 值,在添加操作之前输入数组会被展开,values 可以是单元素,也可以是任意数组,将 values 添加到 arr 数组后,该函数会返回一个新数组,而原数组不变。

append() 函数的示例代码 example1 如下。

# -*- coding: UTF-8 -*- import numpy as np #创建数组arr arr = np.array([[1,2,3,4],[5,6,7,8]]) print('第1个数组arr:',arr)   print('向arr数组添加元素:') print(np.append(arr,[[9,10],[11,12]])) print('原数组:',arr)   print('沿轴 0 添加元素:') print(np.append(arr,[[9,10,11,12],[11,11,11,11]], axis=0)) print('沿轴 1 添加元素:') print(np.append(arr,[[9,10],[11,12]], axis=1))

insert()函数

该函数在给定索引之前,沿给定轴在输入数组中插入值。该函数会返回一个新数组,原数组不变。使用 insert() 函数的方法如下:

numpy.insert(arr,obj,values,axis)

对各个参数的说明:

  • 参数 arr 表示输入的数组;

  • obj 表示在其之前插入值的索引;

  • values 表示向arr数组插入的值,values值可为单元素或values数组,并且 values 数组行维度与arr数组列维度相同;

  • axis 表示沿着水平或竖直方向完成插入操作的轴,axis 取 0 表示沿竖直方向操作,即在 arr 数组行索引位于 obj 的位置处插入 values 值,axis 取 1 表示沿水平方向操作,即在 arr 数组列索引位于 obj 的位置处插入 values 值。

如果未提供 axis 值,在插入之前输入数组会被展开,values 可以是单个元素,也可以是一维数组,将 values 插入到 obj 的位置处,该函数会返回一个新数组,原数组不变。

另外,insert() 函数如果传递了 axis 参数,则插入 values 值时,会以广播值数组来配输入数组,即 np.insert(arr,2,[9],axis=0),其中 values 为 [9],arr 是 2 行 4 列数组,由于 axis=0,则插入值的数组列维度与arr数组列维度相同,因此,插入值数组为 1 行 4 列的数组,也就是广播值数组 [9,9,9,9]。

insert() 函数的示例代码 example2 如下。

# -*- coding: UTF-8 -*- import numpy as np #创建数组arr arr = np.array([[1,2,3,4], [5,6,7,8]]) print('第1个数组arr:',arr)   print('未传递axis参数。在插入之前输入数组会被展开。') print(np.insert(arr,4,[9, 10,11,12])) print('传递了axis参数,会以广播值数组来配输入数组。') print('沿轴 0 广播:') print(np.insert(arr, 2, [9], axis=0))    #插入值是[9,9,9,9] print('沿轴 0 插入:') print(np.insert(arr, 2, [9,10,11,12], axis=0)) print('沿轴 1 广播:') print(np.insert(arr, 2, [[9],[10]], axis=1)) print('沿轴 1 插入:') print(np.insert(arr, 2, [[9,10],[11,12]], axis=1))

delete()函数

该函数返回从输入数组中删除指定子数组的新数组,原数组不变。与 insert() 函数的情况一样,如果未提供轴参数,则输入数组将展开。使用 delete() 函数的方法如下:

numpy.delete(arr,obj,axis)

对各个参数的说明:

  • 参数 arr 表示输入的数组;

  • obj 是用整数或者整数数组表示的从输入数组中删除的子数组,obj 可以用切片 numpy.s_[start:end:step] 表示要删除的子数组范围;

  • axis 表示沿着它删除给定子数组的轴,如果未提供 axis 值,则输入数组会被展开。

delete() 函数的示例代码 example3 如下。

# -*- coding: UTF-8 -*- import numpy as np #创建数组arr arr = np.arange(16).reshape(4,4) print('第1个数组arr:',arr) print ('未传递 axis 参数,在删除之前输入数组会被展开。') print (np.delete(arr,[6,9,12]))   #删除arr数组中索引为6,9,12的元素 print(arr) print('删除第3列:') print(np.delete(arr, 2, axis=1)) print('删除第2行:') print(np.delete(arr, 1, axis=0))   print('从数组中删除用切片表示元素范围值:') print(np.delete(arr, np.s_[::2]))

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...