numpy.sum()的使用详解
作者:Leekingsen 发布时间:2023-01-04 15:19:24
numpy的sum函数可接受的参数是:
sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue)
在参数列表中:
a是要进行加法运算的向量/数组/矩阵
axis的值可以为None,也可以为整数和元组
其形参的注释如下:
a : array_like elements to sum.
a:用于进行加法运算的数组形式的元素
axis : None or int or tuple of ints, optional
Axis or axes along which a sum is performed.
The default, axis=None, will sum all of the elements of the input array.
If axis is negative it counts from the last to the first axis.
If axis is a tuple of ints, a sum is performed on all of the axes
specified in the tuple instead of a single axis or all the axes as before.
根据上文,可知:
axis的取值有三种情况:1.None,2.整数, 3.整数元组。
(在默认/缺省的情况下,axis取None)
如果axis取None,即将数组/矩阵中的元素全部加起来,得到一个和。
Example:
>>> np.sum([0.5, 1.5])
2.0
>>> np.sum([0.5, 0.7, 0.2, 1.5], dtype=np.int32)
1
>>> np.sum([[0, 1], [0, 5]])
6
如果axis为整数,axis的取值不可大于数组/矩阵的维度,且axis的不同取值会产生不同的结果。
先以2×2的二维矩阵为例:
>>> np.sum([[0, 1], [0, 5]], axis=0)
array([0, 6])
>>> np.sum([[0, 1], [0, 5]], axis=1)
array([1, 5])
在上述例子中
当axis为0时,是压缩行,即将每一列的元素相加,将矩阵压缩为一行
当axis为1时,是压缩列,即将每一行的元素相加,将矩阵压缩为一列(这里的一列是为了方便理解说的,实际上,在控制台的输出中,仍然是以一行的形式输出的)
具体理解如图:
当axis取负数的时候,对于二维矩阵,只能取-1和-2(不可超过矩阵的维度)。
当axis=-1时,相当于axis=1的效果,当axis=-2时,相当于axis=0的效果。
如果axis为整数元组(x,y),则是求出axis=x和axis=y情况下得到的和。
继续以上面的2×2矩阵为例
>>>np.sum([[0,1],[0,5]],axis=(0,1))
>>>6
>>>np.sum([[0,1],[0,5]],axis=(1,0))
>>>6
另外,需要注意的是:如果要输入两个数组/矩阵/向量进行相加,那么就要先把两个数组/矩阵/向量用一个括号括起来,形成一个元组,这样才能够进行相加。因为numpy.sum的运算实现本质是通过矩阵内部的运算实现的。
当然,如果只是向量/数组之间做加法运算,可以直接让两个向量/数组相加,但前提是它们必须为numpy的array数组才可以,否则只是单纯的列表相加
Example:
>>>v1 = [1, 2]
>>>v2 = [3, 4]
>>>v1 + v2
[1, 2, 3, 4]
>>>v1 = numpy.array[1, 2]
>>>v2 = numpy.array[3, 4]
>>>v1 + v2
[4, 6]
来源:https://blog.csdn.net/Leekingsen/article/details/76242244
猜你喜欢
- SOCKET编程socket(套接字):是一个网络通信的端点,能实现不同主机的进程通信, -通过IP+端口定位对方并发送消息的通信机制分为U
- 简介:格式:map(function,iterable,……)参数说明:function:是表示
- 本文介绍了python BlockingScheduler定时任务及其他方式的实现,具体如下:#BlockingScheduler定时任务f
- 对模型中的字段进行验证Django模型中的内置字段验证是所有Django字段预定义的默认验证。每个字段都带有来自Django验证器的内置验证
- 在这个星期Doug Bowman离开谷歌的Twitter引发了很多激烈的讨论.在残酷的诚实邮件中,Doug Bowman援引谷歌”限制性的数
- QueueTornado的tornado.queue模块为基于协程的应用程序实现了一个异步生产者/消费者模式的队列。这与python标准库为
- 有朋友使用DIV居中,但是却发现DIV居中失灵了,是怎么回事呢?下面给大家解决一下问题,呵呵!1、一般情况下DIV居中失效是因为没写DTD语
- 本文实例讲述了php使用Cookie实现和用户会话的方法。分享给大家供大家参考。具体分析如下:PHP 包含了很多的函数,可以用来管理和记录用
- 目录一、基础说起(一)实现最简单的窗体二、好戏开始了(一)把灰色设置成透明色(二)放置一个矩形框在canvas上。(三)大家有发现变化吗?三
- 如下所示:result = result.T.sort(['confidence','support'],
- clone() 与 detach() 对比Torch 为了提高速度,向量或是矩阵的赋值是指向同一内存的,这不同于 Matlab。如果需要保存
- 前言pymssql模块是用于sql server数据库(一种数据库通用接口标准)的连接。另外pyodbc不仅限于SQL server,还包括
- 本文实例为大家分享了用matplotlib中scatter方法画散点图的具体代码,供大家参考,具体内容如下1、最简单的绘制方式绘制散点图是数
- 闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程
- 摘要:本篇博客将详细介绍如何对YOLOv5车牌识别模型进行优化和部署。我们将讨论模型优化策略,如模型蒸馏、模型剪枝和量化等。此外,我们还将介
- fmtfmt是go语言中的格式化输入输出库,其中主要分为两个部分,分别是输出部分和输入部分。输出PrintPrint函数的主要功能是输出,和
- 例题取用登录模块:代码如下def login_check(username,password):''' 登录校验的函
- 1.在浏览器上搜索PyCharmhttps://www.jetbrains.com/pycharm/download/#section=wi
- 1.语音信号的产生与特性我们要对语音进行分析,首先要提取能够表示该语音的特征参数,有了特征参数才可能利用这些参数进行有效的处理,在对语音信号
- 什么是pyc文件pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有