python numpy append

1. 介绍
numpy.append(arr, values, axis=None) 函数用于在给定数组中附加值。
该函数将 values 参数中的元素追加到 arr 参数中,返回一个新的数组。可以选择指定 axis 参数以控制元素的附加方式。
arr:要附加值的数组。values:要附加的值或数组。axis:指定附加方式的轴(可选),默认为None。
通过本文,我们将详细解释 append 函数的用法,并且在每个示例中演示其输出。
2. 基础用法
首先,让我们来看一个简单的示例,了解如何使用 append 函数。
import numpy as np
# 创建一个空数组
arr = np.array([])
# 添加一个元素
new_arr = np.append(arr, 10)
print(new_arr)
输出为:
[10]
在上面的示例中,我们首先创建了一个空的 arr 数组。然后,我们使用 np.append() 函数将值 10 附加到 arr 中。
可以看到,new_arr 现在包含了 10 这个元素。
3. 附加多个元素
append 函数不仅可以用于附加单个元素,还可以用于附加多个元素。我们可以向 values 参数传递一个数组,其中包含要附加的多个元素。
下面是一个示例,演示如何使用 append 函数附加多个元素。
import numpy as np
arr = np.array([1, 2, 3])
# 附加多个元素
new_arr = np.append(arr, [4, 5, 6])
print(new_arr)
输出为:
[1 2 3 4 5 6]
在上面的示例中,我们首先创建了一个包含元素 [1, 2, 3] 的 arr 数组。然后,我们使用 np.append() 函数将另一个数组 [4, 5, 6] 附加到 arr。
可以看到,new_arr 现在包含了 arr 和 [4, 5, 6] 中的所有元素。
4. 附加多维数组
除了附加单个元素或多个元素之外,append 函数还可以用于附加多维数组。
下面是一个示例,演示如何使用 append 函数附加一个多维数组。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 附加多维数组
new_arr = np.append(arr, [[7, 8, 9]], axis=0)
print(new_arr)
输出为:
[[1 2 3]
[4 5 6]
[7 8 9]]
在上述示例中,我们创建了一个包含两个行的二维数组 arr。然后,使用 np.append() 函数将另一个二维数组 [[7, 8, 9]] 附加到 arr 的末尾。
可以看到,new_arr 现在包含了 arr 和 [[7, 8, 9]] 这个多维数组的所有行。
5. 指定轴
append 函数的 axis 参数允许我们控制元素的附加方式。axis 参数指定了在哪个轴上进行附加操作。
接下来,我们将演示如何使用 axis 参数来控制附加操作。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 在列上附加多维数组
new_arr = np.append(arr, [[7], [8]], axis=1)
print(new_arr)
输出为:
[[1 2 3 7]
[4 5 6 8]]
在上述示例中,我们创建了一个二维数组 arr,它有两个行和三列。然后,我们使用 np.append() 函数将一个二维数组 [[7], [8]] 附加到 arr 的列上。
可以看到,new_arr 现在包含了 arr 和 [[7], [8]] 这个二维数组的所有列。
6. 注意事项
在使用 append 函数时,需要注意一些问题。
首先,numpy.append() 函数总是返回一个新的数组,并不会直接修改原始数组。所以,需要将返回的新数组赋值给一个变量,用于进一步操作。
其次,尽管 numpy.append() 函数可以在复杂的情况下提供灵活的附加操作,但它的性能可能不如直接对数组进行操作。如果只是简单地附加元素或数组,直接使用 + 运算符可能更高效。
最后,numpy.append() 函数在每次追加元素时都会生成新的数组对象,因此在追加大量元素时,可能会导致内存分配和复制的开销较大。如果需要追求更高的性能,可以考虑使用其他更适合的数组操作函数。
7. 总结
在本文中,我们详细介绍了 numpy.append() 函数的用法。我们学习了如何使用它来附加单个元素、多个元素和多维数组,以及如何使用 axis 参数控制附加操作。我们还讨论了一些注意事项和性能问题。
极客教程