Numpy:使用负轴进行np.sum计算
在本文中,我们将介绍如何使用numpy的np.sum函数进行负轴的运算。在numpy中,np.sum被广泛使用以计算数组元素的总和,它也可以方便地应用于沿负轴求和,这在某些情况下非常有用。
阅读更多:Numpy 教程
负轴在numpy中的定义
在numpy中,负轴是一个表示沿数组维数逆向计算的整数。例如,具有形状(3,4,2)的三维数组的轴可以表示为:
axis = 0
沿第一个维度计算,得到一个形状为(4,2)的数组。axis = 1
沿第二个维度计算,得到一个形状为(3,2)的数组。axis = 2
沿第三个维度计算,得到一个形状为(3,4)的数组。axis = -1
沿最后一个维度(即第三个维度)逆向计算,得到一个形状为(3,4)的数组。
对于上面的例子,沿负轴表示的是完全相同的维度,但是逆向计算。因此,它是沿着最后一个维度计算,与axis=2
相同。
接下来,我们将使用 numpy 的 np.sum 函数演示如何在负轴上进行计算。
使用负轴进行np.sum计算
让我们首先创建一个包含随机数的三维数组:
import numpy as np
np.random.seed(0)
arr = np.random.randint(-10, 10, size=(3, 4, 2))
print(arr)
输出:
[[[ 8 0 9 -1]
[ 5 -2 2 2]
[ -2 3 2 -10]
[ 7 -1 -5 -9]]
[[ -8 -4 0 -7]
[ -3 5 -2 4]
[ 7 6 -4 -3]
[ 4 8 -4 7]]
[[ -7 4 -3 9]
[ -9 -1 -1 -2]
[ 4 5 -2 4]
[ -8 -4 6 3]]]
接下来,我们将在最后一个维度上计算数组的和,也就是沿着负轴:
sum_arr = np.sum(arr, axis=-1)
print(sum_arr)
输出:
[[ 16 7 -9 -8]
[-19 4 6 11]
[ 3 -13 11 -3]]
在这个例子中,第一个维度(大小3)沿着它自己相加,第二个维度(大小4)沿着它自己相加,最后一个维度(大小2)沿着逆向相加。在计算过程中,在最后一个维度上的每个向量进行加法运算,并产生一个大小为(3,4)的数组。在输入数组中,第一个向量是 [8, 0, 9, -1]
,第二个向量是 [5, -2, 2, 2]
,第三个向量是[-2, 3, 2, -10]
。我们将这三个向量相加得到 [16, 7, -9, -8]
,在同样的方式下计算出所有元素。
当需要在负轴计算时,只需将要求和的轴设置为-1即可。使用 np.sum 函数可以很容易地对多维数组的任意维度进行求和操作,并且还可以通过其他参数来定义计算的范围和类型。例如,可以通过 axis 参数来控制在哪个维度上求和,也可以通过 dtype 参数来指定输出的数据类型。
除了 np.sum 之外,numpy 还有多个函数可以进行类似的操作,例如 np.cumsum,np.prod 等等。在实际的数据分析和计算中,这些函数都可以大大简化计算和优化代码。
总结
在本文中,我们介绍了 numpy 中使用负轴进行计算的方法,并使用 np.sum 函数对三维数组沿负轴进行求和操作进行演示。通过掌握这种方法,可以在数据处理和分析中更加灵活地处理各种情况下的数组操作。同时,在实际操作中,还应注意其他参数和函数,以获得更好的运算效果。