想向一个二维numpy数组添加元素需要考虑到以下几个关键点:
- 确认需要添加元素的位置(添加在行还是列)
- 保证被添加的元素形状与原数组对应轴匹配
现在来详细讲解如何向numpy数组中添加元素:
一. 添加元素 - 追加行/列
numpy提供了两个特殊的函数来进行追加操作
- 沿着行方向添加数据:numpy.append(arr, values, axis=None)
- 沿着列方向添加数据:numpy.vstack(tup)
其中,numpy.append()方法会将未知长度的值添加到现有数组的末尾。而numpy.vstack()方法则会按垂直方向(行顺序)堆叠数组序列(行数相同)来构成一个新的数组。
下面是两个示例来说明如何使用这两种方法来向二维数组中添加元素:
import numpy as np
# 示例1 - 使用numpy.append()方法添加一行新数据
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9]])
new_arr1 = np.append(arr1, arr2, axis=0)
print('添加行后的数组:')
print(new_arr1)
# 示例2 - 使用numpy.vstack()方法添加一列新数据
arr3 = np.array([[1, 2, 3], [4, 5, 6]])
arr4 = np.array([10, 20]).reshape(2, 1)
new_arr2 = np.vstack((arr3, arr4))
print('添加列后的数组:')
print(new_arr2)
二. 添加元素 - 自动扩容
使用numpy.append()与numpy.vstack()方法可以在现有的数组基础上添加新的数据,但是这样添加只适用于已知将要添加的数据,如果我们想将未知数量的数据添加进去,需要首先创建一个空的numpy数组,然后实时进行扩容,这个时候我们可以使用numpy.empty()或numpy.zeros()先创建一个空的二维数组,然后逐步往里面添加数据:
import numpy as np
# 示例3 - 在空的二维数组中添加数据
arr5 = np.empty((0, 3)) # 以空的3列二维数组为基础
for i in range(5):
y = np.array([[1, 2, 3]])
arr5 = np.append(arr5, y, axis=0)
print('扩容后的数组为:')
print(arr5)
以上就是向空的二维numpy数组中添加元素的方法,通过这两个例子的演示,希望可以让各位读者明确如何向numpy数组中添加元素。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:numpy向空的二维数组中添加元素的方法 - Python技术站