使用numpy.ndarray添加元素
作者:聪小聪i 发布时间:2022-10-31 06:12:15
numpy.ndarray添加元素
平常使用的比较多的是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:数组(Ndarray)之元素添加、删除和修改
数组也是一个可变类型,可以对数组中的元素进行添加、删除和修改,本文详细介绍了对数组元素的添加和删除的操作,以及这两种操作的方法均已列出。数组元素的修改操作简单,只要对索引和切片掌握,使用索引和切片获取到元素后赋值就可以实现。
添加元素
方法 | 说明 |
---|---|
numpy.append() | 数组追加元素 |
numpy.insert() | 数组插入元素 |
numpy.append()
在数组末尾追加元素。
numpy.append(arr, values, axis=None)
参数说明:
arr
:接收array_like,需要添加元素的数组。values
:接收array_like,追加到末尾的元素,形状必须匹配。arr和values的维度必须相等才能追加axis
:接收int,如果未给定轴,则arr和values在使用前都会被展平。
返回值:
ndarray,arr的副本。
示例:
# 创建数组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
:接收整数,轴向。如果未给定轴向数组会被展平。
返回值:
ndarray,插入值后的副本。
示例:
>>> 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
:接收整数,轴向
返回值:
ndarray,删除元素后的数组,是副本。
示例:
>>> 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]])
来源:https://blog.csdn.net/congcong_i/article/details/121009226


猜你喜欢
- 理解 CPU 工作原理,重要的是理解 pc 不停地自增地址,顺序执行程序指令。当遇到跳转指令时,会将 pc 重置为新地址。在顺序执行程序指令
- 常用的python第三方库安装工具大概有三种:1、pip (分为cmd和conda)(推荐)2、easy_install &n
- 使用索引时数据库性能优化的必备技能之一。在MySql数据库中,有四种索引:聚焦索引(主键索引)、普通索引、唯一索引以及我们这里将要介绍的全文
- 自动化测试执行的用例有很多,python额测试用例文件,都是以“test”开头的。TestLoader(defaultTestLoader)
- 不是很难哦,我们现在就可以实现VBScript在服务器端验证,就是下面的函数:<%FUNCTION TestString(S
- logging模块简介Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并
- 一般删除文件时使用os库,然后利用os.remove(path)即可完成删除,如果删除空文件夹则可使用os.removedirs(path)
- element换肤所有主题色和基础色均可自主配置1.element-ui官方提供的动态切换主题方法换肤 但此方法只可修改$&ndas
- 本文实例为大家分享了Bootstrap导航栏和登陆框的具体代码,供大家参考,有不足的地方请大家谅解,大家共同学习进步。<!DOCTYP
- InstrRev描述:返回某字符串在另一个字符串中出现的从结尾计起的位置。语法:InstrRev(string1, string2
- 在节点之间再应用一些排序逻辑,二叉树就能提供出色的组织方式。对于每个节点,都让满足所有特定条件的元素都位于左节点及其子节点。在插入新元素时,
- 如图:其中Num是自增长列,Operation是分类标签,count是汇总数据 代码如下:select Num=row_numb
- 对于一个net开发这爬虫真真的以前没有写过。这段时间开始学习python爬虫,今天周末无聊写了一段代码爬取上海租房图片,其实很简短就是利用爬
- 最近因为要写一个项目的接口,需要远程的连接oracle数据库,刚开始的时候因为我本地只装了MySQL,所以用就连接了本地MySQL,接口大体
- 本文实例讲述了Python使用tablib生成excel文件的方法。分享给大家供大家参考,具体如下:import tablibheaders
- 本文实例为大家分享了python绘制分组对比柱状图的具体代码,供大家参考,具体内容如下首先放效果图: # -*- co
- * 对子查询和Join进行了优化,包括对MyISAD和InnoB存储引擎分散范围内的批量索引访问。* 增加了 BACKUP DATABASE
- 众所周知,Python 支持多种编程范式:过程式(使用基础的语句)、面向对象编程和函数式编程。Python 也提供了其他函数式编程语言的工具
- 最近实习需要对若干ppt进行格式上的调整,主要就是将标题的位置、对齐方式、字体等统一,人工修改又麻烦又容易错。因此结合网上的pptx包资料,
- 代码如下:Function htmll(mulu,htmlmulu,FileName,filefrom,htmla,htmlb,h