上一篇
NumPy数组添加元素方法详解 - Python数据科学教程
- Python
- 2025-08-12
- 61
NumPy数组添加元素的5种方法详解
NumPy数组与Python列表不同,其大小在创建时即固定。本教程将详细讲解如何通过NumPy提供的函数实现数组元素的添加操作,包括一维和多维数组的处理方法。
一、np.append() 基础用法
在数组末尾添加元素的最简单方法:
import numpy as np # 创建原始数组 arr = np.array([1, 2, 3]) # 在末尾添加单个元素 new_arr = np.append(arr, 4) print(new_arr) # 输出: [1 2 3 4] # 添加多个元素 new_arr = np.append(arr, [5, 6, 7]) print(new_arr) # 输出: [1 2 3 5 6 7]
注意:np.append()不会修改原数组,而是返回新数组
二、np.insert() 指定位置插入
在数组任意位置插入元素:
# 在索引2的位置插入元素 arr = np.array([10, 20, 30, 40]) new_arr = np.insert(arr, 2, 25) print(new_arr) # 输出: [10 20 25 30 40] # 在多个位置插入元素 new_arr = np.insert(arr, [1, 3], [15, 35]) print(new_arr) # 输出: [10 15 20 30 35 40]
三、np.concatenate() 数组合并
合并多个数组的高效方法:
arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) # 一维数组合并 result = np.concatenate((arr1, arr2)) print(result) # 输出: [1 2 3 4 5 6] # 二维数组行合并 matrix1 = np.array([[1, 2], [3, 4]]) matrix2 = np.array([[5, 6]]) result = np.concatenate((matrix1, matrix2), axis=0) print(result) # 输出: # [[1 2] # [3 4] # [5 6]]
四、np.hstack() 水平堆叠
水平方向合并数组(列方向):
a = np.array([1, 2]) b = np.array([3, 4]) result = np.hstack((a, b)) print(result) # 输出: [1 2 3 4] # 二维数组示例 arr1 = np.array([[1], [2]]) arr2 = np.array([[3], [4]]) result = np.hstack((arr1, arr2)) print(result) # 输出: # [[1 3] # [2 4]]
五、np.vstack() 垂直堆叠
垂直方向合并数组(行方向):
a = np.array([1, 2]) b = np.array([3, 4]) result = np.vstack((a, b)) print(result) # 输出: # [[1 2] # [3 4]] # 二维数组示例 arr1 = np.array([[1, 2]]) arr2 = np.array([[3, 4]]) result = np.vstack((arr1, arr2)) print(result) # 输出: # [[1 2] # [3 4]]
性能比较与使用建议
- 小规模数据:np.append()和np.insert()更直观
- 批量添加元素:np.concatenate()效率最高
- 多维数组操作:优先使用hstack/vstack明确维度方向
- 重要提示:避免在循环中使用append/insert,会多次复制数组导致性能下降
最佳实践示例:
# 高效添加多个元素的方法 original = np.array([1, 2, 3]) to_add = np.array([4, 5, 6]) # 推荐方法 result = np.concatenate((original, to_add)) # 不推荐方法(循环中性能差) result = original for x in to_add: result = np.append(result, x)
本文由XieZen于2025-08-12发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://www.521pj.cn/20257978.html
发表评论