专栏: 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表里面来看:

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

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

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

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

注意,合并以后,数据少了一个维度,剩下的数据还是按维度从小到大排列(也就是轴从大到小排列),年份是最低维度最高轴,因此表格是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函数原文

numpy库函数用法(一):sum函数用法相关推荐

  1. python中mean的用法_python 的numpy库中的mean()函数用法介绍

    1. mean() 函数定义: numpy.mean(a, axis=None, dtype=None, out=None, keepdims=)[source] Compute the arithm ...

  2. python average函数怎么用_python 的numpy库中的mean()函数用法介绍

    1. mean() 函数定义: numpy.mean(a, axis=None, dtype=None, out=None, keepdims=)[source] Compute the arithm ...

  3. python 的numpy库中的mean()函数用法介绍

    这篇文章主要介绍了python 的numpy库中的mean()函数用法介绍,具有很好对参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 mean() 函数定义: 2 mean()函数功能: 求取均 ...

  4. python sum函数用法_python3中sum函数大全

    一: python3中内置的sum函数用法: sum(iterable, start) iterable:可迭代对象(如列表,元组,集合) start:指定相加的参数,如果没有设置这个值,默认为0 返 ...

  5. python自带的sum()函数和numpy库中的sum()函数的区别

    在学习<机器学习实战>一书的第十章时,对 return np.sqrt(sum(np.power(vecA - vecB, 2))) 这样一条语句输出的结果老是不对,明明想要输出的是对两个 ...

  6. Compound Words UVA - 10391(c++用法中substr函数用法+map实现)

    题意: 给出字典中一堆单词,单词的输入方式是以字典序输入的.问:在这一堆单词中,有那些单词是通过其它两个单词组合而来的.按字典序升序输出这些单词. 题目: You are to find all th ...

  7. php的uniqid函数,PHP之uniqid()函数用法,phpuniqid函数用法_PHP教程

    PHP之uniqid()函数用法,phpuniqid函数用法 本文实例讲述了PHP中uniqid()函数的用法.分享给大家供大家参考.具体方法分析如下: uniqid() 函数基于以微秒计的当前时间, ...

  8. 详解Python的max、min和sum函数用法

    max().min().sum()这三个内置函数分别用于计算列表.元组或其他可迭代对象中所有元素最大值.最小值以及所有元素之和,sum()只支持数值型元素的序列或可迭代对象,max()和min()则要 ...

  9. MySQL中的sum函数用法实例详解

    今天分享一下mysql中的sum函数使用.该函数已经成为大家操作mysql数据库中时常用到的一个函数,这个函数统计满足条件行中指定列的和,想必肯定大家都知道了,本身就没什么讲头了,这篇文章主要是通过几 ...

最新文章

  1. .NET2.0抓取网页全部链接【月儿原创】
  2. 服务器系统日志4625,win2008 r2 成千上万的“审核失败”日志 事件ID 4625
  3. kafka报错Failed to find any class that implements Connector
  4. 鸟哥的 Linux 私房菜7 -- 首次开机关机与基本指令执行
  5. docker 全部杀掉
  6. 漂亮又好用的Redis可视化客户端汇总
  7. C++:听说C++很难学?该怎么学习C++?
  8. JavaScript 之 截取字符串函数
  9. IOS UIScrollView中 使用 touch 无法响应的问题
  10. 【设计模式】11、享元模式
  11. 4.26,最好用的新浪图床GG了,博客满屏的403
  12. Python】Scrapy抓取多玩Gif图片
  13. VSCode画 UML 图
  14. CSFR(跨站请求伪造)攻击与防御
  15. concurrent mode failure
  16. 深信服下一代防火墙(NGAF)学习笔记
  17. 去掉Word2007文档眉头的横线
  18. Eclipse 插件大全
  19. 一文读懂“个人经营收款码”和“个人收款码”的区别
  20. ELK系列(四)、Logstash读取nginx日志写入ES中

热门文章

  1. 树莓派安装linux
  2. linux jedi-vim安装,SpaceVim安装与环境配置
  3. 【C/C++】获取计算机CPUID序列号
  4. 【ROS机器人系统】自主导航+YOLO目标检测+语音播报
  5. 第70届戛纳电影节:优酷全网首次广播级直播,阿里云提供海外专线技术
  6. codevs 2594 解药还是毒药(状压+bfs)
  7. 安卓手机 清理微信内置浏览器里面的网页缓存方法
  8. HTML5和CSS3 WEB技术开发
  9. 解决MacOS下readlink: illegal option -- f
  10. js数据结构与算法 图的BFS和DFS