numpy库函数用法(一):sum函数用法

专栏: numpy库函数用法

目录

*
一、sum函数通用格式
二、sum函数相关参数
三、sum函数举例

+ 1、普通求和
+ 2、按单个属性(轴)求和
+ 3、按多个指定属性(轴)求和
四、sum函数总结

一、sum函数通用格式

sum函数的调用格式如下:

numpy.sum(a, axis = None, dtype = None, out = None, keepdims = <no value>, initial = <no value>, where = <no value>)

二、sum函数相关参数

sum函数常用的参数如下,其他参数以后要用再研究补充

  • a:要求和的数组
  • axis:要求和数组的轴。默认情况下,axis = None 将对输入数组的所有元素求和。如果轴为负,则从最后一个轴到第一个轴计数。1.7.0 版中的新功能。如果轴是整数元组,则对元组中指定的所有轴进行求和,而不是像以前那样对单个轴或所有轴进行求和。

三、sum函数举例

1、普通求和

在命令行输入下面程序,表示对数组里面的所有数求和

>>> import numpy as np
>>> a = np.array([[[1,2,3,4,5],[5,4,3,2,1],[1,1,1,1,1]],[[5,4,3,2,1],[1,2,3,4,5],[1,1,1,1,1]]])
>>> a
array([[[1, 2, 3, 4, 5],
        [5, 4, 3, 2, 1],
        [1, 1, 1, 1, 1]],

       [[5, 4, 3, 2, 1],
        [1, 2, 3, 4, 5],
        [1, 1, 1, 1, 1]]])
>>>
>>> np.sum(a)
70

2、按单个属性(轴)求和

使用上面的数组a,将其放在Excel表里面来看:

numpy库函数用法(一):sum函数用法

由此可以看出,这个数组是三维的,也就是有三个轴(axis),一个数字由三个属性决定的:列,行,页。这组数据有2页,每一页有3行,每一行有5列,注意我说的顺序,说明页是最高的维度,因此我们规定列是第2轴,行是第1轴,页是第0轴,即维度越高的,轴的值反而越小。

为了方便理解,把表格假设一个具体的情景,表格数据假设是获得诺贝尔奖的人数,如下图:

numpy库函数用法(一):sum函数用法

由此我们可以这么理解,国家是第2轴,年份是第1轴,性别是第0轴。这组数据有2种性别、3个年份,5个国家。

如果我们对这组数据要这么处理:要统计出1990、2000、2010年,全球男性和女性分别获得诺贝尔奖的数据。这里的全球,也就是不分国家,从本质上,是合并了国家这个属性,所以Excel表应当如下:

numpy库函数用法(一):sum函数用法

注意,合并以后,数据少了一个维度,剩下的数据还是按维度从小到大排列(也就是轴从大到小排列),年份是最低维度最高轴,因此表格是3列2行。

上述过程是合并国家这一属性,即 axis = 2,命令行的程序可以这样写:

>>> import numpy as np
>>> a = np.array([[[1,2,3,4,5],[5,4,3,2,1],[1,1,1,1,1]],[[5,4,3,2,1],[1,2,3,4,5],[1,1,1,1,1]]])
>>> a
array([[[1, 2, 3, 4, 5],
        [5, 4, 3, 2, 1],
        [1, 1, 1, 1, 1]],

       [[5, 4, 3, 2, 1],
        [1, 2, 3, 4, 5],
        [1, 1, 1, 1, 1]]])
>>> np.sum(a,axis = 2)
array([[15, 15,  5],
       [15, 15,  5]])

结果与表格完全一致。

3、按多个指定属性(轴)求和

如果我们对这组数据要这么处理:全球男性和女性分别获得诺贝尔奖的数据,这里同时合并了国家和年份这两个属性,所以还剩性别这个属性,那么数据应该是2列,注意到介绍axis时,提到了使用元组可以对多个轴求和合并,这里国家和年份轴的值分别是2,1,即 axis = (2,1),注意元组是小括号表示,2和1顺序可调换,命令行程序如下:

>>> import numpy as np
>>> a = np.array([[[1,2,3,4,5],[5,4,3,2,1],[1,1,1,1,1]],[[5,4,3,2,1],[1,2,3,4,5],[1,1,1,1,1]]])
>>> a
array([[[1, 2, 3, 4, 5],
        [5, 4, 3, 2, 1],
        [1, 1, 1, 1, 1]],

       [[5, 4, 3, 2, 1],
        [1, 2, 3, 4, 5],
        [1, 1, 1, 1, 1]]])
>>> np.sum(a,axis = (1,2))
array([35, 35])

四、sum函数总结

sum函数既可以对全体数据求和,也可以按单独的属性(轴)求和,更可以以元组的形式,对指定的多个属性(轴)求和。至于为什么维度最高的轴的值为0,原因很简单,因为表示单独一个数组,以3维为例,表示方法为a[][][],第一个[]表示的是最高维度,继而轴为0,数组的表示维度顺序与坐标轴的顺序刚好相反,而数组对应轴,坐标对应维度。

numpy官网
numpy中文网
numpy下载PDF
sum函数原文

Original: https://blog.csdn.net/qq_46212154/article/details/120707761
Author: HUN-lmy
Title: numpy库函数用法(一):sum函数用法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/759286/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球