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

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

参考:numpy append to 2d array

在数据处理和科学计算中,经常需要向现有的数组中追加新的数据。Numpy是Python中一个强大的数值计算库,它提供了多种方法来向数组中追加数据。本文将详细介绍如何在Numpy中向二维数组追加数据,并提供多个示例代码。

1. 使用numpy.append()函数

numpy.append()函数是向数组追加数据的最基本方法。它可以将值追加到数组的末尾,并返回一个新数组。使用这个函数时,需要指定追加的轴(axis),对于二维数组,轴0代表行,轴1代表列。

示例代码1:向二维数组追加行

import numpy as np

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

# 创建一个要追加的新行
new_row = np.array([5, 6])

# 向二维数组追加新行
result = np.append(array_2d, [new_row], axis=0)

print(result)

Output:

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

示例代码2:向二维数组追加列

import numpy as np

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

# 创建一个要追加的新列
new_column = np.array([[5], [6]])

# 向二维数组追加新列
result = np.append(array_2d, new_column, axis=1)

print(result)

Output:

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

2. 使用numpy.concatenate()函数

numpy.concatenate()函数也可以用来追加数据。与append()不同,concatenate()可以一次性追加多个数组,并且它通常比append()更高效。

示例代码3:使用concatenate()追加行

import numpy as np

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

# 创建一个要追加的新行
new_rows = np.array([[5, 6], [7, 8]])

# 向二维数组追加新行
result = np.concatenate((array_2d, new_rows), axis=0)

print(result)

Output:

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

示例代码4:使用concatenate()追加列

import numpy as np

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

# 创建一个要追加的新列
new_columns = np.array([[5, 7], [6, 8]]).T

# 向二维数组追加新列
result = np.concatenate((array_2d, new_columns), axis=1)

print(result)

Output:

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

3. 使用numpy.vstack()numpy.hstack()函数

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

示例代码5:使用vstack()追加行

import numpy as np

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

# 创建一个要追加的新行
new_row = np.array([5, 6])

# 向二维数组追加新行
result = np.vstack((array_2d, new_row))

print(result)

Output:

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

示例代码6:使用hstack()追加列

import numpy as np

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

# 创建一个要追加的新列
new_column = np.array([[5], [6]])

# 向二维数组追加新列
result = np.hstack((array_2d, new_column))

print(result)

Output:

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

4. 使用numpy.insert()函数

numpy.insert()函数可以在数组的指定位置插入值。这个函数不仅可以追加数据,还可以在数组的任意位置插入数据。

示例代码7:在二维数组的指定位置插入行

import numpy as np

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

# 创建一个要插入的新行
new_row = np.array([5, 6])

# 在第一个位置插入新行
result = np.insert(array_2d, 1, new_row, axis=0)

print(result)

Output:

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

示例代码8:在二维数组的指定位置插入列

import numpy as np

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

# 创建一个要插入的新列
new_column = np.array([5, 6])

# 在第一个位置插入新列
result = np.insert(array_2d, 1, new_column, axis=1)

print(result)

Output:

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

5. 使用numpy.r_numpy.c_对象

numpy.r_numpy.c_是两个特殊的对象,它们可以帮助我们以一种简洁的方式进行数组的行和列操作。

示例代码9:使用numpy.r_追加行

import numpy as np

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

# 创建一个要追加的新行
new_row = np.array([5, 6])

# 向二维数组追加新行
result = np.r_[array_2d, [new_row]]

print(result)

Output:

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

示例代码10:使用numpy.c_追加列

import numpy as np

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

# 创建一个要追加的新列
new_column = np.array([[5], [6]])

# 向二维数组追加新列
result = np.c_[array_2d, new_column]

print(result)

Output:

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

6. 使用切片和赋值

在某些情况下,我们可以通过切片和赋值来扩展数组。这种方法需要先创建一个更大的数组,然后将原始数据和新数据填充到这个数组中。

示例代码11:使用切片和赋值追加行

import numpy as np

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

# 创建一个更大的数组
result = np.zeros((3, 2), dtype=array_2d.dtype)

# 将原始数据填充到新数组
result[:2, :] = array_2d

# 创建一个要追加的新行
new_row = np.array([5, 6])

# 将新行填充到新数组
result[2, :] = new_row

print(result)

Output:

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

示例代码12:使用切片和赋值追加列

import numpy as np

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

# 创建一个更大的数组
result = np.zeros((2, 3), dtype=array_2d.dtype)

# 将原始数据填充到新数组
result[:, :2] = array_2d

# 创建一个要追加的新列
new_column = np.array([5, 6])

# 将新列填充到新数组
result[:, 2] = new_column

print(result)

Output:

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

7. 使用numpy.pad()函数

numpy.pad()函数可以在数组的边缘添加值。这个函数非常灵活,可以指定各种填充方式和填充值。

示例代码13:使用pad()追加行

import numpy as np

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

# 使用pad()函数追加行
result = np.pad(array_2d, ((0, 1), (0, 0)), mode='constant', constant_values=0)

print(result)

Output:

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

示例代码14:使用pad()追加列

import numpy as np

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

# 使用pad()函数追加列
result = np.pad(array_2d, ((0, 0), (0, 1)), mode='constant', constant_values=0)

print(result)

Output:

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

8. 使用numpy.block()函数

numpy.block()函数可以将多个数组组合成一个更大的数组。这个函数非常灵活,可以处理各种形状和大小的数组。

示例代码15:使用block()追加行

import numpy as np

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

# 创建一个要追加的新行
new_row = np.array([5, 6])

# 使用block()函数追加行
result = np.block([array_2d, [new_row]])

print(result)

示例代码16:使用block()追加列

import numpy as np

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

# 创建一个要追加的新列
new_column = np.array([[5], [6]])

# 使用block()函数追加列
result = np.block([array_2d, new_column])

print(result)

Output:

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

9. 使用numpy.column_stack()numpy.row_stack()函数

numpy.column_stack()numpy.row_stack()函数可以将一维数组堆叠成二维数组。这两个函数非常适合处理一维数据。

示例代码17:使用row_stack()追加行

import numpy as np

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

# 创建一个要追加的新行
new_row = np.array([5, 6])

# 使用row_stack()函数追加行
result = np.row_stack((array_2d, new_row))

print(result)

Output:

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

示例代码18:使用column_stack()追加列

import numpy as np

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

# 创建一个要追加的新列
new_column = np.array([5, 6])

# 使用column_stack()函数追加列
result = np.column_stack((array_2d, new_column))

print(result)

Output:

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

10. 使用numpy.resize()函数

numpy.resize()函数可以改变数组的大小。如果新大小大于原始大小,那么新的数组将用重复的原始数据填充。

示例代码19:使用resize()追加行

import numpy as np

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

# 使用resize()函数追加行
result = np.resize(array_2d, (3, 2))

print(result)

Output:

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

示例代码20:使用resize()追加列

import numpy as np

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

# 使用resize()函数追加列
result = np.resize(array_2d, (2, 3))

print(result)

Output:

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

以上就是在Numpy中向二维数组追加数据的各种方法。希望这篇文章能帮助你在实际工作中更好地使用Numpy。如果你有任何问题或建议,欢迎访问我们的网站numpyarray.com进行交流。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程