python教程,如何在ndarray指定位置插入一行或一列数据?
发布于 作者:苏南大叔 来源:程序如此灵动~

本文的主要讨论的话题就是:如何在已有的ndarray
变量里面如何插入新的数据,这些新的数据可能是一列数据,也可能是一行数据。这些数据都是怎么被insert
进去的呢?

苏南大叔的“程序如此灵动”技术博客,本文讨论向ndarray
内插入新数据的可能性。测试环境:win10
,python@3.11.0
,numpy@1.24.2
,pandas@1.5.3
。
函数提供方
本文的.insert()
函数的提供方是numpy
,而不是ndarray
。ndarray
是作为第一个参数出现的。所以,使用姿势是这样的:
插什么数据
插入的数据可以是普通的数字或字符串,也可以是个数组,也可以是个特殊的二维数组。


行还是列 axis
这里通过参数axis
,来决定:插入的是一列数据,还是一行数据的问题。关于axis
表示什么的问题,不能说为0
就是行,为1
就是列。这个axis
参数到底表示什么,是根据使用它的函数的真实含义来决定的。参考文章:
axis
就是表述操作的是数据流的运动方向,axis=1
为一列一列推进,axis=0
为一行一行推进。那么本文的主要对象是.insert()
,所以功能上是:插入目标数据,所以axis=1
,就是先插入第一列,再插入第二列...。
测试代码:

axis参数 | 效果 | 副作用 |
---|---|---|
默认不传递axis | 在零行i列插入一个或几个数据 | 数据会被扁平化处理 |
axis=0 | 在i行插入N行数据 | 无 |
axis=1 | 在i列插入N列数据 | 无 |
axis=其它 | 未知 | 未知 |

插入在什么位置
插入位置的定义,比较多。合法的取值有:int
数字、list
数组、tuple
元组、slice
切片。


无论数组、元组还是普通索引,插入的位置就是原来ndarray
的索引位置。但是下面的slice()
就比较难以理解了。定义的是被修改后的ndarray
的位置,大家自己体会吧。头晕!

总结
更多python
文章,点击链接:


