Numpy append vs concatenate

Numpy append vs concatenate

参考:numpy append vs concatenate

在数据处理和科学计算中,经常需要对数组进行操作,比如添加或合并数据。NumPy库提供了多种方法来处理数组,其中appendconcatenate是两个常用的函数。本文将详细介绍这两个函数的用法、区别以及适用场景,并通过多个示例代码来展示如何在实际中使用这些函数。

numpy append

numpy.append函数用于将值添加到NumPy数组的末尾。这个函数首先会将输入数组展平,然后在其后添加值,最后返回一个新的数组。append函数的语法如下:

numpy.append(arr, values, axis=None)
  • arr:被添加的数组。
  • values:要添加的值,可以是一个标量、列表、元组或另一个数组。
  • axis:沿着哪个轴添加值。如果不指定,则会将数组展平。

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

import numpy as np

arr = np.array([1, 2, 3])
values = 4
result = np.append(arr, values)
print(result)  # 输出:[1 2 3 4]

Output:

Numpy append vs concatenate

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

import numpy as np

arr = np.array([[1, 2], [3, 4]])
values = [[5, 6]]
result = np.append(arr, values, axis=0)
print(result)  # 输出:[[1 2] [3 4] [5 6]]

Output:

Numpy append vs concatenate

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

import numpy as np

arr = np.array([[1, 2], [3, 4]])
values = [[5], [6]]
result = np.append(arr, values, axis=1)
print(result)  # 输出:[[1 2 5] [3 4 6]]

Output:

Numpy append vs concatenate

numpy concatenate

numpy.concatenate函数用于沿指定轴连接两个或多个数组。与append不同,concatenate可以同时处理多个数组,并且不会自动展平输入数组。concatenate函数的语法如下:

numpy.concatenate((a1, a2, ...), axis=0)
  • (a1, a2, ...):一个元组,包含要连接的数组。
  • axis:沿着哪个轴进行连接。

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

import numpy as np

a1 = np.array([1, 2, 3])
a2 = np.array([4, 5, 6])
result = np.concatenate((a1, a2))
print(result)  # 输出:[1 2 3 4 5 6]

Output:

Numpy append vs concatenate

示例5:连接两个二维数组(沿轴0)

import numpy as np

a1 = np.array([[1, 2], [3, 4]])
a2 = np.array([[5, 6], [7, 8]])
result = np.concatenate((a1, a2), axis=0)
print(result)  # 输出:[[1 2] [3 4] [5 6] [7 8]]

Output:

Numpy append vs concatenate

示例6:连接两个二维数组(沿轴1)

import numpy as np

a1 = np.array([[1, 2], [3, 4]])
a2 = np.array([[5, 6], [7, 8]])
result = np.concatenate((a1, a2), axis=1)
print(result)  # 输出:[[1 2 5 6] [3 4 7 8]]

Output:

Numpy append vs concatenate

区别和选择

numpy.appendnumpy.concatenate虽然都可以用来合并数组,但它们在功能和性能上有一些区别:

  1. 功能差异append会自动展平数组,除非指定axis参数;而concatenate则保持数组的原始维度,需要明确指定要连接的轴。
  2. 性能差异:当处理大数组或多个数组时,concatenate的性能通常优于append,因为append在内部实际上是调用了concatenate,并且还涉及额外的展平操作。

根据具体需求选择合适的函数。如果需要保持数组维度或合并多个数组,推荐使用concatenate。如果只是简单地添加几个元素到数组末尾,并且不关心性能影响,可以使用append

结论

本文详细介绍了NumPy中的appendconcatenate函数,包括它们的用法、区别以及适用场景。通过多个示例代码,展示了如何在实际中使用这些函数来处理数组。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程