指定axis后Numpy append仍无法添加新行问题求助
Numpy添加新行失败的原因及解决方法
你遇到的问题核心是数组维度不对:当前的arr是一维数组(形状为(3,)),在一维数组中指定axis=0,np.append只会沿着现有维度直接追加元素,不会生成新的行。
要实现添加新行的效果,需要先把数组转换成二维数组(形状为(1,3)),这样axis=0才会沿着行的方向进行拼接。修改后的代码如下:
import numpy as np # 将初始数组定义为二维数组(外层多一层方括号) arr = np.array([['1', '2', '3']]) # 要添加的新行同样定义为二维数组 new_row = np.array([['4', '5', '6']]) print(np.append(arr, new_row, axis=0))
执行后输出会是:
[['1' '2' '3'] ['4' '5' '6']]
另外,用np.vstack(垂直堆叠)会更直观,它可以自动处理一维数组转二维的过程:
import numpy as np arr = np.array(['1', '2', '3']) new_row = np.array(['4', '5', '6']) print(np.vstack((arr, new_row)))
这段代码的输出和上面一致,不需要手动调整数组维度,更适合新手使用。
内容的提问来源于stack exchange,提问作者Navya Lam
相关产品推荐
相关产品推荐

