
python 如何把np数组中追加数组
用户关注问题
我有一个NumPy数组,想在它的末尾添加新的元素,该怎么实现?
使用np.append函数向NumPy数组添加元素
可以使用NumPy的np.append函数来向数组末尾添加元素。语法是np.append(arr, values),其中arr是原数组,values是你想添加的新元素或者新数组。这个方法会返回一个新的数组,原数组不变。例如:
import numpy as np
arr = np.array([1, 2, 3])
new_arr = np.append(arr, [4, 5]) # new_arr为[1 2 3 4 5]
我想把一个数组追加到另一个数组,但不影响原有数组。有什么方法做到吗?
使用np.concatenate函数合并数组,原数组保持不变
NumPy的np.concatenate函数可以将多个数组合并成一个新数组,不改变原数组。语法是np.concatenate((arr1, arr2), axis=None),其中传入一个数组元组。默认会展平然后拼接,也可以通过axis参数指定拼接的维度。例如:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5])
new_arr = np.concatenate((arr1, arr2)) # new_arr为[1 2 3 4 5]
当我有两个多维数组想要合并,怎样控制它们是水平还是垂直合并?
用np.concatenate时通过axis参数控制数组拼接方向
np.concatenate函数通过设置axis参数来指定拼接沿着哪个维度进行。比如,两个二维数组通过axis=0可以垂直拼接(增加行数),通过axis=1可以水平拼接(增加列数)。示例:
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6]])
垂直拼接,增加行数
over_arr = np.concatenate((arr1, arr2), axis=0) # 3行2列
水平拼接,增加列数
hor_arr = np.concatenate((arr1, arr2.T), axis=1) # 2行3列