知行编程网知行编程网  2022-08-11 17:11 知行编程网 隐藏边栏  34 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python中numpy数组如何添加和删除元素的相关知识,包括python numpy数组,以及python元组添加变量元素这些编程知识,希望对大家有参考作用。

如何在 Python 中从 numpy 数组中添加和删除元素

要在 numpy 中添加和删除数组元素,可以使用 append() 和 insert() 函数将元素添加到数组中,或者使用 delete() 函数返回一个删除了轴的子数组的新数组。并使用 unique() 函数在数组中查找唯一元素。下面介绍这些函数的使用。



append()函数

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

<p><span>numpy.append(arr,values,axis)<br/></span></p>


对各个参数的说明:


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

  • values表示加入arr数组的元素,values是一个数组,values数组列的维度与arr数组列的维度相同;
  • axis 表示在水平或垂直方向上执行加法运算的轴。如果axis为0,表示在垂直方向操作,如果axis为1,表示在水平方向操作。

如果没有提供轴值,则在加法操作之前将扩展输入数组。值可以是单个元素或任何数组。给arr数组加值后,函数会返回一个新数组,保持原数组不变。


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

<p><span># -*- 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))<br/></span></p>



insert()函数

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

<p><span>numpy.insert(arr,obj,values,axis)<br/></span></p>


对各个参数的说明:


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


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

  • values表示插入arr数组的值,values值可以是单个元素也可以是values数组,values数组的行维度与arr数组的列维度相同;
  • axis表示水平或垂直方向完成插入操作的轴,axis 0表示垂直操作,即在obj处插入arr数组行索引所在位置的values值, axis 1代表横向操作,即在obj处的arr数组列索引的位置插入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 如下。

<p><span># -*- 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))<br/></span></p>



delete()函数

此函数返回一个新数组,其中指定的子数组已从输入数组中删除,原始数组保持不变。与 insert() 函数的情况一样,如果未提供轴参数,则将扩展输入数组。以下是如何使用 delete() 函数:

<p><span>numpy.delete(arr,obj,axis)<br/></span></p>


对各个参数的说明:


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

  • obj是输入数组中要删除的子数组,用整数或整数数组表示,obj可以使用切片numpy.s_[start:end:step]来表示要删除的子数组范围;
  • axis 表示删除给定子数组的轴,如果没有提供轴值,则扩展输入数组。


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

<p><span># -*- 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]))<br/></span></p>


以上是numpy数组中三个函数的使用,更多Python学习建议:





(推荐操作系统:windows7系统、Python 3.9.1,DELL G3电脑。)

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享