Numpy:使用负轴进行np.sum计算

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 函数对三维数组沿负轴进行求和操作进行演示。通过掌握这种方法,可以在数据处理和分析中更加灵活地处理各种情况下的数组操作。同时,在实际操作中,还应注意其他参数和函数,以获得更好的运算效果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程