向 NumPy 数组中添加元素

向 NumPy 数组中添加元素

参考:append to numpy array

在数据处理和科学计算中,经常需要对数组进行动态的修改。NumPy 提供了多种方式来向数组中添加元素或者合并数组。本文将详细介绍如何使用 NumPy 向数组中添加元素,包括使用 appendconcatenate 和其他相关函数。我们将通过多个示例来展示如何在实际应用中使用这些功能。

1. 使用 np.append 函数

np.append 函数是向数组添加元素的最直接方法。它可以将值添加到数组的末尾,并返回一个新数组。需要注意的是,np.append 并不是在原地修改数组,而是创建了一个新的数组。

示例代码 1:向一维数组添加元素

import numpy as np

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

# 向数组添加一个元素
new_arr = np.append(arr, 4)

print(new_arr)  # 输出结果应为 [1, 2, 3, 4]

Output:

向 NumPy 数组中添加元素

示例代码 2:向二维数组添加行

import numpy as np

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

# 向数组添加一行
new_arr = np.append(arr, [[5, 6]], axis=0)

print(new_arr)  # 输出结果应为 [[1, 2], [3, 4], [5, 6]]

Output:

向 NumPy 数组中添加元素

示例代码 3:向二维数组添加列

import numpy as np

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

# 向数组添加一列
new_arr = np.append(arr, [[5], [6]], axis=1)

print(new_arr)  # 输出结果应为 [[1, 2, 5], [3, 4, 6]]

Output:

向 NumPy 数组中添加元素

2. 使用 np.concatenate 函数

np.concatenate 是 NumPy 中用于合并两个或多个数组的函数。它可以在指定轴上连接数组,是一个非常灵活的工具。

示例代码 4:连接两个一维数组

import numpy as np

# 创建两个一维数组
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]

Output:

向 NumPy 数组中添加元素

示例代码 5:连接两个二维数组(沿着第一个轴)

import numpy as np

# 创建两个二维数组
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])

# 连接数组,沿着第一个轴
result = np.concatenate((arr1, arr2), axis=0)

print(result)  # 输出结果应为 [[1, 2], [3, 4], [5, 6], [7, 8]]

Output:

向 NumPy 数组中添加元素

示例代码 6:连接两个二维数组(沿着第二个轴)

import numpy as np

# 创建两个二维数组
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])

# 连接数组,沿着第二个轴
result = np.concatenate((arr1, arr2), axis=1)

print(result)  # 输出结果应为 [[1, 2, 5, 6], [3, 4, 7, 8]]

Output:

向 NumPy 数组中添加元素

3. 使用 np.vstacknp.hstack

除了 np.appendnp.concatenate,NumPy 还提供了 np.vstack(垂直堆叠)和 np.hstack(水平堆叠)函数,这些函数提供了更直观的方式来合并数组。

示例代码 7:使用 np.vstack 垂直堆叠数组

import numpy as np

# 创建两个一维数组
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 垂直堆叠
result = np.vstack((arr1, arr2))

print(result)  # 输出结果应为 [[1, 2, 3], [4, 5, 6]]

Output:

向 NumPy 数组中添加元素

示例代码 8:使用 np.hstack 水平堆叠数组

import numpy as np

# 创建两个一维数组
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 水平堆叠
result = np.hstack((arr1, arr2))

print(result)  # 输出结果应为 [1, 2, 3, 4, 5, 6]

Output:

向 NumPy 数组中添加元素

4. 使用 np.insert 函数

np.insert 函数可以在数组的指定位置插入值。这比 np.append 提供了更大的灵活性,因为它不限于在数组的末尾添加元素。

示例代码 9:在一维数组中插入元素

import numpy as np

# 创建一个一维数组
arr = np.array([1, 2, 4, 5])

# 在索引 2 的位置插入值 3
result = np.insert(arr, 2, 3)

print(result)  # 输出结果应为 [1, 2, 3, 4, 5]

Output:

向 NumPy 数组中添加元素

示例代码 10:在二维数组中插入行

import numpy as np

# 创建一个二维数组
arr = np.array([[1, 2], [4, 5]])

# 在第一个索引位置插入新行
result = np.insert(arr, 1, [3, 4], axis=0)

print(result)  # 输出结果应为 [[1, 2], [3, 4], [4, 5]]

Output:

向 NumPy 数组中添加元素

示例代码 11:在二维数组中插入列

import numpy as np

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

# 在第一个索引位置插入新列
result = np.insert(arr, 1, [5, 6], axis=1)

print(result)  # 输出结果应为 [[1, 5, 2], [3, 6, 4]]

Output:

向 NumPy 数组中添加元素

示例代码 12:使用 np.resize 扩展一维数组

import numpy as np

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

# 扩展数组
result = np.resize(arr, 6)

print(result)  # 输出结果应为 [1, 2, 3, 1, 2, 3]

Output:

向 NumPy 数组中添加元素

示例代码 13:使用 np.resize 扩展二维数组

import numpy as np

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

# 扩展数组
result = np.resize(arr, (3, 3))

print(result)  # 输出结果应为 [[1, 2, 3], [4, 1, 2], [3, 4, 1]]

Output:

向 NumPy 数组中添加元素

5. 使用 np.pad 函数

np.pad 函数可以在数组的边缘添加填充。这在需要扩展数组但又不想改变原有元素的位置时非常有用。

示例代码 14:使用 np.pad 填充一维数组

import numpy as np

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

# 填充数组
result = np.pad(arr, (2, 3), 'constant', constant_values=(0, 0))

print(result)  # 输出结果应为 [0, 0, 1, 2, 3, 0, 0, 0]

Output:

向 NumPy 数组中添加元素

示例代码 15:使用 np.pad 填充二维数组

import numpy as np

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

# 填充数组
result = np.pad(arr, ((1, 1), (2, 2)), 'constant', constant_values=(0, 0))

print(result)  # 输出结果应为 [[0, 0, 0, 0, 0, 0], [0, 0, 1, 2, 0, 0], [0, 0, 3, 4, 0, 0], [0, 0, 0, 0, 0, 0]]

Output:

向 NumPy 数组中添加元素

6. 使用 np.column_stacknp.row_stack

np.column_stacknp.row_stacknp.vstacknp.hstack 的便捷版本,它们可以更方便地堆叠一维数组。

示例代码 16:使用 np.column_stack 堆叠一维数组

import numpy as np

# 创建两个一维数组
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 列堆叠
result = np.column_stack((arr1, arr2))

print(result)  # 输出结果应为 [[1, 4], [2, 5], [3, 6]]

Output:

向 NumPy 数组中添加元素

示例代码 17:使用 np.row_stack 堆叠一维数组

import numpy as np

# 创建两个一维数组
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 行堆叠
result = np.row_stack((arr1, arr2))

print(result)  # 输出结果应为 [[1, 2, 3], [4, 5, 6]]

Output:

向 NumPy 数组中添加元素

7. 使用 np.block 函数

np.block 函数是一个强大的工具,可以从任意数量的输入数组构建一个新数组。

示例代码 18:使用 np.block 构建数组

import numpy as np

# 创建多个数组
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr3 = np.array([[7, 8, 9], [10, 11, 12]])

# 使用 block 构建新数组
result = np.block([[arr1], [arr2], [arr3]])

print(result)  # 输出结果应为 [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]

Output:

向 NumPy 数组中添加元素

8. 总结

在本文中,我们详细介绍了如何使用 NumPy 中的各种函数来向数组中添加元素。我们通过多个示例展示了如何使用 append, concatenate, vstack, hstack, insert, resize, pad, column_stack, row_stackblock 等函数。这些函数在处理数据时非常有用,可以帮助我们更有效地进行数据操作和分析。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程