numpy添加元素怎样实现,删改操作是什么
Admin 2022-08-27 群英技术资讯 503 次浏览
平常使用的比较多的是list,在list后面添加元素直接是
data_list = [] data_list.append(0)
就可以了。
但是在上次使用这个用法时,报错numpy.adarray没有append这个属性,因此发现data_list这个变量不是一个list,而是numpy.ndarray类型的,因此改为:
np.append(data_list, 0)
但是这样改完之后会发现data_list的值并没有发生改变,因此,我改为
data_list = np.append(data_list, 0)
然后由于添加了一个元素,他会告诉你,等号右边是x+1维,左边是x维,不能赋值,然后改为:
new_list = np.append(data_list, 0)
定义了一个新变量new_list用于保存添加完元素的值,后面再接着使用new_list进行操作就可以了。
数组也是一个可变类型,可以对数组中的元素进行添加、删除和修改,本文详细介绍了对数组元素的添加和删除的操作,以及这两种操作的方法均已列出。数组元素的修改操作简单,只要对索引和切片掌握,使用索引和切片获取到元素后赋值就可以实现。
方法 | 说明 |
---|---|
numpy.append() | 数组追加元素 |
numpy.insert() | 数组插入元素 |
numpy.append()
在数组末尾追加元素。
numpy.append(arr, values, axis=None)
参数说明:
arr
:接收array_like,需要添加元素的数组。values
:接收array_like,追加到末尾的元素,形状必须匹配。arr和values的维度必须相等才能追加axis
:接收int,如果未给定轴,则arr和values在使用前都会被展平。返回值:
示例:
# 创建数组a >>> a = np.arange(1,7).reshape(2,3) >>> a array([[1, 2, 3], [4, 5, 6]]) # 创建数组b >>> b = np.arange(7,10).reshape(1,3) # a,b维度相同才能追加 >>> b array([[7, 8, 9]])
注意:数组(arr)和追加值(values)的维度必须相同才可以追击,否则会报错:
ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)
不指定轴向时,生成副本,将数组a,b都展平后进行追加。
# 将数组b追加到数组a后 >>> np.append(a, values=b) # 不指定axis时 array([ 1, 2, 3, 4, 5, 6, 7, 8, 9])
指定轴向时,根据轴向追加,但是形状必须匹配,指定轴向为行追加时列数必须相等,指定轴向为列追加时,行数必须相等。
>>> np.append(a, values=b, axis=0) # 根据行追加 array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9]])
指定轴向时,指定轴向为列时,行数不相同,形状不匹配,无法追加,会报ValueError错!
>>> np.append(a, values=b, axis=1)
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2 and the array at index 1 has size 1
numpy.insert()
给定的轴向和指定的索引位置插入值。
numpy.insert(arr, obj, values, axis=None)
参数说明:
arr
:接收array_like,输入的数组。obj
:接收整数或者整数序列,索引位置。values
:接收array_like,需要插入数组的值,需要考虑形状。axis
:接收整数,轴向。如果未给定轴向数组会被展平。返回值:
示例:
>>> a = np.arange(1,7).reshape(2,3) >>> a array([[1, 2, 3], [4, 5, 6]]) >>> b = np.ones(shape=(2,1)) >>> b array([[1.], [1.]]) # 向数组a的行方向,索引为2的行插入数组b,会自动补全 >>> np.insert(a, 2, b, axis=0) array([[1, 2, 3], [4, 5, 6], [1, 1, 1], [1, 1, 1]]) # 向数组a的列方向,索引为2的列插入数组b >>> np.insert(a, 2, b, axis=1) array([[1, 2, 1, 1, 3], [4, 5, 1, 1, 6]])
方法 | 说明 |
---|---|
numpy.delete() | 删掉某个轴的子数组,并返回删除后的新数组 |
numpy.delete()
返回一个沿轴删除了子数组的新数组。
返回一个沿轴删除了子数组的新数组。
numpy.delete(arr, obj, axis=None)
参数说明:
arr
:接收array_like,输入数组。obj
:接收索引、切片,或者整数构成的数组。axis
:接收整数,轴向返回值:
示例:
>>> a = np.arange(1,7).reshape(2,3) >>> a array([[1, 2, 3], [4, 5, 6]]) # 轴向为列,删除索引为2的列 >>> np.delete(a, 2, axis=1) array([[1, 2], [4, 5]])
对数据进行操作时形状非常重要,如果形状不匹配会引发报错,需要对报错的类型了解,才能在出问题后及时找到原因。除此以外,轴向也是非常重要的,二维数组中:axis=0表示行,axis=1表示列,这个概念非常容易混淆。
使用索引切片获取到该位置的元素后使用"="为该位置重新赋值即可。
语法:数组名[索引]=值 或 数组名[切片]=值
示例:
>>> a = np.arange(1,7).reshape(2,3) >>> a array([[1, 2, 3], [4, 5, 6]]) # 使用索引获取到该位置后重新赋值即可修改元素 >>> a[0, 1] = 100 >>> a array([[ 1, 100, 3], [ 4, 5, 6]])
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python中的PyInputPlus模块详解,PyInputPlus包含与input()类似的、用户多种数据(数字日期、E-mail地址等)的函数,PyInputPlus还包含其他有用的功能,本文给大家介绍的非常详细,需要的朋友可以参考下
Python使用def开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的 具体功能实现代码,如果想要函数有返回值, 在expressions中的逻辑代码中用return返回。
进程是资源分配的最小单位,他是操作系统进行资源分配和调度运行的基本单位。通俗理解:一个正在运行的一个程序就是一个进程,本文重点给大家介绍python多线程编程的相关知识,感兴趣的朋友一起看看吧
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
支持向量机 (Support Vector Machine, SVM) 是一种监督学习技术,它通过根据指定的类对训练数据进行最佳分离,从而在高维空间中构建一个或一组超平面。本文将介绍通过SVM算法实现手写数字的识别,需要的可以了解一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008