【NumPy】np.append() 函数:数组的末尾添加元素,并返回一个新的数组

NumPy np.append() 函数

np.append() 用于在 NumPy 数组的末尾添加元素,并返回一个新的数组。
注意np.append() 不会修改原数组,而是返回一个新的数组。


1. np.append() 语法

numpy.append(arr, values, axis=None)
  • arr原始数组,可以是一维或多维数组。
  • values要添加的值,可以是单个数、列表、NumPy 数组。
  • axis:(可选)指定沿哪个轴添加:
    • axis=None(默认):数组展平成 1D 后追加(无论输入是几维数组)。
    • axis=0按行追加(前提是 arrvalues 维度匹配)。
    • axis=1按列追加(前提是 arrvalues 维度匹配)。

2. np.append() 示例

2.1 一维数组

import numpy as np

arr = np.array([1, 2, 3])
new_arr = np.append(arr, [4, 5, 6])

print(new_arr)  # [1 2 3 4 5 6]

注意

  • arr 没有改变,而是返回了 new_arr
  • values 需要是列表或数组,不能是单个数(需要写成 [4] 而不是 4)。

2.2 二维数组(默认 axis=None,会展平成 1D)

arr_2d = np.array([[1, 2], [3, 4]])
new_arr = np.append(arr_2d, [5, 6])

print(new_arr)  # [1 2 3 4 5 6]  展平后添加

2.3 二维数组(axis=0,按行追加)

arr_2d = np.array([[1, 2], [3, 4]])
new_row = np.array([[5, 6]])  # 需要保证行列数匹配
new_arr = np.append(arr_2d, new_row, axis=0)

print(new_arr)

输出:

[[1 2]
 [3 4]
 [5 6]]  # 追加了一行

2.4 二维数组(axis=1,按列追加)

arr_2d = np.array([[1, 2], [3, 4]])
new_col = np.array([[5], [6]])  # 列数必须匹配
new_arr = np.append(arr_2d, new_col, axis=1)

print(new_arr)

输出:

[[1 2 5]
 [3 4 6]]  # 追加了一列
  • new_col = np.array([[5], [6]]),需要写成二维列向量,否则会报错。

3. np.append() vs np.concatenate()

np.append() 适用于增加少量数据,但它每次都会创建一个新数组,因此效率较低
如果要高效拼接数组,推荐使用 np.concatenate()

示例:

np.concatenate((arr_2d, new_row), axis=0)  # 更高效

4. np.append() 适用场景

  • 在 NumPy 数组末尾添加元素
  • 当数组大小不固定时(但对于大量数据,建议用 np.concatenate())。
  • 适用于一维和多维数组(但多维数组需要 axis 维度匹配)。

5. 总结

函数 作用
np.append(arr, values) 在数组末尾追加元素,返回新数组
np.append(arr, values, axis=0) 按行追加(仅适用于多维数组)
np.append(arr, values, axis=1) 按列追加(仅适用于多维数组)
np.concatenate((arr1, arr2), axis=n) 高效拼接多个数组(更推荐大数据使用)

你可能感兴趣的:(数据分析,numpy,append,np.append,添加元素,python)