Numpy中的append函数使用详解

Numpy中的append函数使用详解

参考:numpy append

Numpy是Python中用于科学计算的基础库之一,它提供了一个强大的数组对象ndarray以及用于对这些数组进行各种操作的函数和方法。append函数是Numpy中用于在数组的末尾添加元素的函数。在本文中,我们将详细介绍如何使用Numpy的append函数,并提供多个示例代码来展示其用法。

Numpy append函数基础

Numpy的append函数用于将值附加到数组的末尾。它的基本语法如下:

numpy.append(arr, values, axis=None)
  • arr是要追加数据的输入数组。
  • values是要追加到arr末尾的值。
  • axis指定追加的轴。如果未提供,则values将被展平之后追加。

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

import numpy as np

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

Output:

Numpy中的append函数使用详解

示例2:向一维数组追加多个元素

import numpy as np

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

Output:

Numpy中的append函数使用详解

示例3:向二维数组追加元素

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
values = [7, 8, 9]
result = np.append(arr, [values], axis=0)
print(result)

Output:

Numpy中的append函数使用详解

示例4:向二维数组追加元素,不指定轴

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
values = [7, 8, 9]
result = np.append(arr, values)
print(result)

Output:

Numpy中的append函数使用详解

Numpy append函数高级用法

在Numpy中,append函数不仅可以用于一维数组,还可以用于多维数组。当处理多维数组时,指定axis参数变得尤为重要。

示例5:沿特定轴向二维数组追加行

import numpy as np

arr = np.array([["numpyarray.com1", "numpyarray.com2"], ["numpyarray.com3", "numpyarray.com4"]])
values = ["numpyarray.com5", "numpyarray.com6"]
result = np.append(arr, [values], axis=0)
print(result)

Output:

Numpy中的append函数使用详解

示例6:沿特定轴向二维数组追加列

import numpy as np

arr = np.array([["numpyarray.com1", "numpyarray.com2"], ["numpyarray.com3", "numpyarray.com4"]])
values = [["numpyarray.com5"], ["numpyarray.com6"]]
result = np.append(arr, values, axis=1)
print(result)

Output:

Numpy中的append函数使用详解

示例7:向三维数组追加数据

import numpy as np

arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
values = [[[9, 10], [11, 12]]]
result = np.append(arr, values, axis=0)
print(result)

Output:

Numpy中的append函数使用详解

示例8:沿特定轴向三维数组追加数据

import numpy as np

arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
values = [[[9, 10]], [[11, 12]]]
result = np.append(arr, values, axis=1)
print(result)

Output:

Numpy中的append函数使用详解

示例9:追加数据到空数组

import numpy as np

arr = np.array([])
values = ["numpyarray.com1", "numpyarray.com2", "numpyarray.com3"]
result = np.append(arr, values)
print(result)

Output:

Numpy中的append函数使用详解

示例10:使用append合并两个数组

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.append(arr1, arr2)
print(result)

Output:

Numpy中的append函数使用详解

Numpy append函数的注意事项

使用Numpy的append函数时,需要注意以下几点:

  1. append操作不是原地操作,它会返回一个新的数组。
  2. axis未指定时,values会被展平然后追加到arr的末尾。
  3. 当指定axis时,values的形状必须与arr在该轴上的形状匹配。

示例11:追加不匹配形状的数据将引发错误

import numpy as np

arr = np.array([[1, 2], [3, 4]])
values = [5, 6, 7]
try:
    result = np.append(arr, [values], axis=0)
    print(result)
except ValueError as e:
    print(e)

Output:

Numpy中的append函数使用详解

示例12:展平后追加多维数组

import numpy as np

arr = np.array([[1, 2], [3, 4]])
values = [[5, 6], [7, 8]]
result = np.append(arr, values)
print(result)

Output:

Numpy中的append函数使用详解

示例13:追加后保持原数组不变

import numpy as np

arr = np.array([1, 2, 3])
values = 4
result = np.append(arr, values)
original_array = arr.copy()
print(original_array)

Output:

Numpy中的append函数使用详解

示例14:使用循环追加元素

import numpy as np

arr = np.array([1, 2, 3])
for i in range(4, 7):
    arr = np.append(arr, i)
print(arr)

Output:

Numpy中的append函数使用详解

示例15:追加不同类型的数据

import numpy as np

arr = np.array([1, 2, 3])
values = ["numpyarray.com1", "numpyarray.com2"]
result = np.append(arr, values)
print(result)

Output:

Numpy中的append函数使用详解

Numpy append函数与其他函数的比较

Numpy中还有其他函数可以用来合并数组,例如concatenatevstackhstack。这些函数在某些情况下比append更高效或更适合。

示例16:使用concatenate合并数组

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.concatenate((arr1, arr2))
print(result)

Output:

Numpy中的append函数使用详解

示例17:使用vstack垂直堆叠数组

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
result = np.vstack((arr1, arr2))
print(result)

Output:

Numpy中的append函数使用详解

示例18:使用hstack水平堆叠数组

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
result = np.hstack((arr1, arr2))
print(result)

Output:

Numpy中的append函数使用详解

示例19:使用append与concatenate比较性能

import numpy as np
import time

arr1 = np.random.rand(1000000)
arr2 = np.random.rand(1000000)

start = time.time()
result = np.append(arr1, arr2)
end = time.time()
print("Append time: ", end - start)

start = time.time()
result = np.concatenate((arr1, arr2))
end = time.time()
print("Concatenate time: ", end - start)

Output:

Numpy中的append函数使用详解

示例20:使用append与vstack/hstack比较性能

import numpy as np
import time

arr1 = np.random.rand(1000, 1000)
arr2 = np.random.rand(1000, 1000)

start = time.time()
result = np.append(arr1, arr2, axis=0)
end = time.time()
print("Append time: ", end - start)

start = time.time()
result = np.vstack((arr1, arr2))
end = time.time()
print("Vstack time: ", end - start)

start = time.time()
result = np.append(arr1, arr2, axis=1)
end = time.time()
print("Append time: ", end - start)

start = time.time()
result = np.hstack((arr1, arr2))
end = time.time()
print("Hstack time: ", end - start)

Output:

Numpy中的append函数使用详解

总结

Numpy的append函数是一个强大的工具,可以用于在数组的末尾添加元素。它可以处理一维和多维数组,可以沿特定轴添加元素,也可以将元素展平后添加。然而,append函数并不是原地操作,它会返回一个新的数组,这可能会影响性能。此外,当处理多维数组时,需要注意values的形状必须与arr在指定轴上的形状匹配,否则会引发错误。

在某些情况下,使用concatenatevstackhstack可能更高效或更适合。这些函数可以合并两个或多个数组,而不仅仅是在数组的末尾添加元素。在性能方面,concatenate通常比append更快,而vstackhstack在处理多维数组时可能更快。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程