NumPy 数组怎么追加值?

文章导读
Previous Quiz Next 在 NumPy 中将值追加到数组 在 NumPy 中将值追加到数组意味着向现有 NumPy 数组添加新元素或数组。此操作涉及创建一个包含原始元素和新元素的新数组,因为 NumPy 数组具有固定大小,不支持像传统列表那样的原地修改。
📋 目录
  1. A 在 NumPy 中将值追加到数组
  2. B 将值追加到一维数组
  3. C 向 2D 数组追加值
  4. D 向多维数组追加
  5. E 使用不同数据类型追加
  6. F 使用 np.concatenate() 函数进行追加
A A

NumPy - 将值追加到数组



Previous
Quiz
Next

在 NumPy 中将值追加到数组

在 NumPy 中将值追加到数组意味着向现有 NumPy 数组添加新元素或数组。此操作涉及创建一个包含原始元素和新元素的新数组,因为 NumPy 数组具有固定大小,不支持像传统列表那样的原地修改。

将值追加到一维数组

在 NumPy 中将值追加到一维数组涉及向现有的一维数组末尾添加新元素。由于 NumPy 数组具有固定大小,此操作会创建一个包含原始元素和新追加值的新的数组。要实现这一点,我们可以使用 NumPy 中的 np.append() 函数。以下是其语法 −

numpy.append(arr, values, axis=None)

其中,

  • arr: 将要追加值的原始数组。
  • values: 要追加的值。可以是单个值或数组。
  • axis: 沿其追加值的轴。对于一维数组,此参数将被忽略,可以为 None。

示例

在以下示例中,我们使用 np.append() 将元素添加到一维数组:首先追加单个值,然后追加多个值 −

import numpy as np

# 创建初始一维数组
arr = np.array([1, 2, 3])

# 追加单个值
arr_appended_single = np.append(arr, 4)

# 追加多个值
arr_appended_multiple = np.append(arr, [4, 5, 6])

print("追加单个值后的数组:", arr_appended_single)
print("追加多个值后的数组:", arr_appended_multiple)

以下是得到的结果 −

Array after appending a single value: [1 2 3 4]
Array after appending multiple values: [1 2 3 4 5 6]

向 2D 数组追加值

在 NumPy 中向 2D 数组追加值涉及向现有二维数组添加行或列。由于 NumPy 数组具有固定大小,追加值会创建一个新数组,将原始数据与新数据组合在一起。让我们探索用于向 2D 数组追加值的各种方式和方法 −

追加 2D 行

要向 2D 数组追加行,我们可以使用 np.vstack() 函数。该函数垂直堆叠数组或沿 axis 0 连接。以下是其语法 −

numpy.vstack(tup)

其中,tup 是一个要垂直堆叠的数组序列。所有数组必须具有相同数量的列。

示例

在本示例中,我们使用 np.vstack() 函数向 2D 数组追加行,在现有行的下方添加新行 −

import numpy as np

# 创建一个初始 2D 数组
arr = np.array([[1, 2], [3, 4]])

# 创建要追加的行数组
rows_to_append = np.array([[5, 6], [7, 8]])

# 将行追加到初始数组
arr_appended_rows = np.vstack((arr, rows_to_append))

print("追加行后的数组:")
print(arr_appended_rows)

结果是一个新数组,附加行堆叠在底部 −

Array after appending rows:
[[1 2]
 [3 4]
 [5 6]
 [7 8]]

追加 2D 列

要向 2D 数组追加列,我们可以使用 np.hstack() 函数。该函数水平堆叠数组或沿 axis 1 连接。以下是其语法 −

numpy.hstack(tup)

其中,tup 是一个要水平堆叠的数组序列。所有数组必须具有相同数量的行。

示例

在下面的示例中,我们使用 np.hstack() 函数向 2D 数组追加列,在现有列的右侧添加新列 −

import numpy as np

# 创建一个初始 2D 数组
arr = np.array([[1, 2], [3, 4]])

# 创建要追加的列数组
columns_to_append = np.array([[5], [6]])

# 将列追加到初始数组
arr_appended_columns = np.hstack((arr, columns_to_append))

print("追加列后的数组:")
print(arr_appended_columns)

结果是一个新数组,附加列放置在原始数据旁边 −

Array after appending columns:
[[1 2 5]
 [3 4 6]]

向多维数组追加

在 NumPy 中向多维数组追加涉及沿指定轴添加新元素。与 1D 和 2D 数组不同,多维数组(例如 3D 或更高维)需要仔细对齐维度和要追加数据的轴。

示例

在以下示例中,我们使用 np.append() 函数沿第一个轴向 3D 数组添加值 −

import numpy as np

# 原始 3D 数组
arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

# 要追加的值(必须匹配维度)
values = np.array([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])

# 沿 axis 0 追加值
result = np.append(arr, values, axis=0)
print(result)

结果数组在新值作为附加层堆叠在原始数组之上 −

[[[ 1  2]
 [ 3  4]]

[[ 5  6]
 [ 7  8]]

[[ 9 10]
 [11 12]]

[[13 14]
 [15 16]]]

使用不同数据类型追加

在 NumPy 中追加不同数据类型的数组需要小心处理,因为 NumPy 数组是同质的;它们必须包含相同数据类型的元素。

当追加不同数据类型的数组时,NumPy 通常会执行类型强制转换或创建一个具有公共数据类型的新数组,该类型可以包含所有追加的数据。

示例

在本示例中,我们使用 np.append() 向整数数组添加浮点值 −

import numpy as np

# 原始整数数组
arr = np.array([1, 2, 3])

# 要追加的值(浮点型)
values = np.array([4.5, 5.5])

# 追加值
result = np.append(arr, values)
print(result)  

执行上述代码后,我们得到以下输出 −

[1.  2.  3.  4.5 5.5]

使用 np.concatenate() 函数进行追加

我们可以使用 np.concatenate() 函数沿着指定的轴组合数组。它特别适用于将数据追加到现有数组中。以下是其语法 −

numpy.concatenate((a1, a2, ...), axis=0)

其中,

  • a1, a2, ...: 要连接的数组。除了对应 axis 参数的维度外,它们必须具有相同的形状。
  • axis: 连接数组的轴。对于 1D 数组,默认值为 0,对于多维数组则为其他值。

示例

在以下示例中,我们使用 np.concatenate() 函数沿着 axis "0" 连接两个 2D 数组 −

import numpy as np

# 要连接的数组
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])

# 沿着 axis 0 连接
result = np.concatenate((arr1, arr2), axis=0)
print(result)

产生的结果如下 −

[[1 2]
 [3 4]
 [5 6]
 [7 8]]