Numpy中向二维数组追加数据的方法

Numpy中向二维数组追加数据的方法

参考:numpy append to 2d array

在数据处理和科学计算中,经常需要对数组进行操作,比如向数组中追加新的数据。Numpy是Python中用于进行高效数值计算的基础库,它提供了一系列用于操作数组的函数。本文将详细介绍如何使用Numpy向二维数组中追加数据,并提供多个示例代码。

1. Numpy简介

Numpy是Python的一个开源数值计算扩展库,用于高效的进行大规模数据数组的快速运算。它提供了数组对象ndarray,以及用于对数组执行操作的各种函数和运算符。Numpy的核心是在大型数据集上执行快速数组操作,它的功能包括但不限于数组的创建、形状变换、排序、选择、I/O、离散傅立叶变换、基本线性代数、基本统计操作和随机模拟等。

2. 创建二维数组

在介绍如何向二维数组追加数据之前,我们先来看看如何创建一个二维数组。

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(array_2d)

Output:

Numpy中向二维数组追加数据的方法

3. 使用np.append()向二维数组追加数据

Numpy提供了np.append()函数,可以用于向数组末尾追加数据。当用于二维数组时,需要指定追加的方向,即沿着哪个轴追加。

3.1 沿着行追加(axis=0)

向二维数组的末尾追加一行,需要指定axis=0

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建一个新行
new_row = np.array([10, 11, 12])

# 向array_2d追加新行
array_2d_appended_row = np.append(array_2d, [new_row], axis=0)
print(array_2d_appended_row)

Output:

Numpy中向二维数组追加数据的方法

3.2 沿着列追加(axis=1)

向二维数组的末尾追加一列,需要指定axis=1

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建一个新列
new_column = np.array([[13], [14], [15]])

# 向array_2d追加新列
array_2d_appended_column = np.append(array_2d, new_column, axis=1)
print(array_2d_appended_column)

Output:

Numpy中向二维数组追加数据的方法

3.3 追加多行或多列

可以一次性追加多行或多列。

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建多行数据
new_rows = np.array([[16, 17, 18], [19, 20, 21]])

# 向array_2d追加多行
array_2d_appended_rows = np.append(array_2d, new_rows, axis=0)
print(array_2d_appended_rows)

Output:

Numpy中向二维数组追加数据的方法

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建多列数据
new_columns = np.array([[22, 23], [24, 25], [26, 27]])

# 向array_2d追加多列
array_2d_appended_columns = np.append(array_2d, new_columns, axis=1)
print(array_2d_appended_columns)

Output:

Numpy中向二维数组追加数据的方法

3.4 注意事项

在使用np.append()时,需要确保追加的数据与原数组在追加轴上的其他维度是兼容的。

4. 使用np.concatenate()向二维数组追加数据

除了np.append(),Numpy还提供了np.concatenate()函数,它可以用于沿指定轴连接两个或多个数组。

4.1 沿着行连接(axis=0)

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建一个新行
new_row = np.array([[28, 29, 30]])

# 沿着行方向连接array_2d和new_row
array_2d_concatenated_row = np.concatenate((array_2d, new_row), axis=0)
print(array_2d_concatenated_row)

Output:

Numpy中向二维数组追加数据的方法

4.2 沿着列连接(axis=1)

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建一个新列
new_column = np.array([[31], [32], [33]])

# 沿着列方向连接array_2d和new_column
array_2d_concatenated_column = np.concatenate((array_2d, new_column), axis=1)
print(array_2d_concatenated_column)

Output:

Numpy中向二维数组追加数据的方法

4.3 连接多个数组

可以一次性连接多个数组。

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建多行数据
new_rows = np.array([[34, 35, 36], [37, 38, 39]])

# 沿着行方向连接array_2d和new_rows
array_2d_concatenated_rows = np.concatenate((array_2d, new_rows), axis=0)
print(array_2d_concatenated_rows)

Output:

Numpy中向二维数组追加数据的方法

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建多列数据
new_columns = np.array([[40, 41], [42, 43], [44, 45]])

# 沿着列方向连接array_2d和new_columns
array_2d_concatenated_columns = np.concatenate((array_2d, new_columns), axis=1)
print(array_2d_concatenated_columns)

Output:

Numpy中向二维数组追加数据的方法

4.4 注意事项

np.append()类似,使用np.concatenate()时也需要确保所有参与连接的数组在非连接轴上的维度是相同的。

5. 使用np.vstack()np.hstack()向二维数组追加数据

Numpy还提供了np.vstack()np.hstack()函数,分别用于垂直(行方向)和水平(列方向)堆叠数组。

5.1 使用np.vstack()垂直堆叠数组

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建一个新行
new_row = np.array([46, 47, 48])

# 使用np.vstack()垂直堆叠array_2d和new_row
array_2d_stacked_row = np.vstack((array_2d, new_row))
print(array_2d_stacked_row)

Output:

Numpy中向二维数组追加数据的方法

5.2 使用np.hstack()水平堆叠数组

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建一个新列
new_column = np.array([[49], [50], [51]])

# 使用np.hstack()水平堆叠array_2d和new_column
array_2d_stacked_column = np.hstack((array_2d, new_column))
print(array_2d_stacked_column)

Output:

Numpy中向二维数组追加数据的方法

5.3 堆叠多个数组

可以一次性堆叠多个数组。

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建多行数据
new_rows = np.array([[52, 53, 54], [55, 56, 57]])

# 使用np.vstack()垂直堆叠array_2d和new_rows
array_2d_stacked_rows = np.vstack((array_2d, new_rows))
print(array_2d_stacked_rows)

Output:

Numpy中向二维数组追加数据的方法

import numpy as np

# 创建一个3x3的二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 创建多列数据
new_columns = np.array([[58, 59], [60, 61], [62, 63]])

# 使用np.hstack()水平堆叠array_2d和new_columns
array_2d_stacked_columns = np.hstack((array_2d, new_columns))
print(array_2d_stacked_columns)

Output:

Numpy中向二维数组追加数据的方法

5.4 注意事项

使用np.vstack()np.hstack()时,需要确保所有参与堆叠的数组在非堆叠轴上的维度是相同的。

6. 总结

本文详细介绍了如何使用Numpy向二维数组中追加数据,包括使用np.append()np.concatenate()np.vstack()np.hstack()函数。这些函数都可以用于向二维数组的末尾追加一行或一列,或者一次性追加多行或多列。在使用这些函数时,需要注意确保追加的数据与原数组在追加轴上的其他维度是兼容的。

Numpy是一个强大的数值计算库,它提供了大量的函数和运算符,可以用于处理各种各样的数值计算任务。通过熟练掌握这些函数和运算符,可以大大提高Python的数值计算能力,从而更好地解决实际问题。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程