Numpy 数组操作之元素添加、删除和修改的实现
作者:Mr李小四 发布时间:2023-06-23 22:09:03
数组元素添加、删除和修改
数组也是一个可变类型,可以对数组中的元素进行添加、删除和修改,本文详细介绍了对数组元素的添加和删除的操作,以及这两种操作的方法均已列出。数组元素的修改操作简单,只要对索引和切片掌握,使用索引和切片获取到元素后赋值就可以实现。
添加元素
numpy.append()
方法 | 说明 |
---|---|
numpy.append() | 数组追加元素 |
numpy.insert() | 数组插入元素 |
在数组末尾追加元素。
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/shield911/article/details/124269761


猜你喜欢
- 以上述图片举例,要求 相对 的顺时针夹角。注意:这里使用图像坐标系1 定义求顺时针角度的函数 import numpy as npdef
- char与varchar的区别来源:https://www.cnblogs.com/ZhuChangwu/p/15118290.html
- 本文实例讲述了Python基于递归算法实现的汉诺塔与Fibonacci数列。分享给大家供大家参考,具体如下:这里我们通过2个例子,学习pyt
- 如下所示:interval=stats.t.interval(a,b,mean,std)t分布的置信区 间a:置信水平b:检验量的自由度me
- 于是写测试程序。。。不行 下载最新的ODBC。。。还是不行 通过sql plus查询。。。咦?竟然也查不到。。。 于是,折腾。。。折腾。。。
- mysql对列求和mysql中,可以使用SELECT语句配合SUM()函数来对列求和,能够返回指定列值的总和,求和语法为&ldquo
- 在jupyter notebook或者是 Qtconsole下编译运行一个简单的pyqt程序,总是报错:The kernel appears
- 本文实例讲述了Python的函数返回值用法。分享给大家供大家参考。具体分析如下:最近学一些Python的基本用法,看到定义函数,发现似乎只能
- 应用场景:工作中经常遇到大量的数据需要整合、去重、按照特定格式导出等情况。如果用 Excel 操作,不仅费时费力,还不准确,有么有更高效的解
- 我们知道 Pandas 是数据科学社区中流行的 Python 包,它包含许多函数和方法来分析数据。尽管它的功能对于数据分析来说足够有效,但定
- 前言最近在写Vue项目的时候,遇到了一个问题,我从A路由使用parmas方式传参跳转到B路由,然后从B路由跳转到C路由,再从C路由返回B路由
- lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高XPath,全称XML Path
- 代码:import tensorflow as tfsess = tf.Session()check_point_path = 'v
- <!DOCTYPE html><html lang="en"><head> <
- 前言TF(TransForm),就是坐标转换,包括了位置和姿态两个方面的变换,坐标变换是机器人学中的概念。在机器人学中,无论一个机器人多么复
- “正则表达式”对象,我们就可以非常方便的对各种数据进行合法性的校验了。首先,让我们来了解一下究竟什么
- 前言本文使用 cpu 的 tensorflow 2.4 完成迁移学习和模型微调,并使用训练好的模型完成猫狗图片分类任务。预训练模型在 NLP
- 本篇主要讲述,如何在微信中打开自家页面后,弹窗请求用户授权,以便拿到用户的微信信息。首先说一下,完成自定义分享信息的,从无到有的流程:基础硬
- 模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题进行系统性的分解以之处理。模块化是一种处理复杂系统分解为代码结
- 一、先来看看Python星空图代码绘制成品1 两个人的星空星空下,欲执子之手,相倚长青树。看皎洁月色,闻乡间气息,赏佳人芳心。2 明月相伴的