numpy.sum()的使用详解

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]

到此这篇关于numpy.sum()的使用详解的文章就介绍到这了,更多相关numpy.sum()使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决Numpy中sum函数求和结果维度的问题

    使用Numpy(下面简称np)中的sum函数对某一维度求和时,由于该维度会在求和后变成一个数,所以所得结果的这一维度为空. 比如下面的例子: a = np.array([[1,2,3],[4,5,6]]) b = np.sum(a,axis=1) print(b.shape) # (2,) 所以,对于一个shape为(2,3)的数组,在默认情况下使用np.sum函数求和后得到的结果shape是 (2,),如果我们想得到的是(2,1)的shape怎么办?比如Ng的深度学习编程练习中Course 1

  • python numpy中cumsum的用法详解

    Cumsum :计算轴向元素累加和,返回由中间结果组成的数组 重点就是返回值是"由中间结果组成的数组" 以下代码在python3.6版本运行成功! 下面看代码,定义一个2*2*3的数组,所以其shape是2,2,3,索引分别0,1,2 shape 索引 2 0 2 1 3 2 代码: import numpy as np arr = np.array([[[1,2,3],[8,9,12]],[[1,2,4],[2,4,5]]]) #2*2*3 print(arr.cumsum(0))

  • numpy.sum()的使用详解

    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 ax

  • numpy 声明空数组详解

    你搜索这个,你会发现好多都是np.zeros(5,2),嗯都是复制的一个国外的帖子,然而没有翻译人家的话. 然后你愤怒的关闭页面.这简直就是文不对题,这哪是空的. 实际上,numpy的数组机制并不支持空数组.(什么鬼答案?)简单来讲就是numpy会申请连续的内存,如果频繁改变大小,他就要频繁申请新的内存.如果你会c语言知道指针的话,你很容易就能想到他不是list格式而是array格式. 如果你不会c语言,那么也没有关系.不影响.只需要记住,numpy的数组一旦变动大小就会像搬家一样大包小包的带着

  • Python基础之Numpy的基本用法详解

    一.数据生成 1.1 手写数组 a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) # 一维数组 b = np.array([[1, 2], [3, 4]]) #二维数组 1.2 序列数组 numpy.arange(start, stop, step, dtype),start默认0,step默认1 c = np.arange(0, 10, 1, dtype=int) # =np.arange(10) [0 1 2 3 4 5 6 7 8 9] d

  • Python NumPy教程之索引详解

    目录 为什么我们需要 NumPy 使用索引数组进行索引 索引类型 基本切片和索引 高级索引 NumPy 或 Numeric Python 是一个用于计算同质 n 维数组的包.在 numpy 维度中称为轴. 为什么我们需要 NumPy 出现了一个问题,当 python 列表已经存在时,为什么我们需要 NumPy.答案是我们不能直接对两个列表的所有元素执行操作.例如,我们不能直接将两个列表相乘,我们必须逐个元素地进行.这就是 NumPy 发挥作用的地方. 示例 #1: # 演示需要 NumPy 的

  • numpy自动生成数组详解

    1 np.arange(),类似于range,通过指定开始值,终值和步长来创建表示等差数列的一维数组,注意该函数和range一样结果不包含终值. >>> np.arange(10) array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> np.arange(0,1,0.1) array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]) >>> 2 np.linspace

  • Numpy掩码式数组详解

    数据很大形况下是凌乱的,并且含有空白的或者无法处理的字符,掩码式数组可以很好的忽略残缺的或者是无效的数据点.掩码式数组由一个正常数组与一个布尔式数组组成,若布尔数组中为Ture,则表示正常数组中对应下标的值无效,反之False表示对应正常数组的值有效. 创建方法为,首先创建一个布尔型数组,然后通过numpy.ma子程序包提供的函数来创建掩码式数组,掩码式数组提供了各种所需函数. 创建实例如下: import numpy as np origin = np.arange(16).reshape(4

  • 对python中矩阵相加函数sum()的使用详解

    假如矩阵A是n*n的矩阵 A.sum()是计算矩阵A的每一个元素之和. A.sum(axis=0)是计算矩阵每一列元素相加之和. A.Sum(axis=1)是计算矩阵的每一行元素相加之和. 以上这篇对python中矩阵相加函数sum()的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 基于Python中求和函数sum的用法详解

    基于Python中求和函数sum的用法详解 今天在看<集体编程智慧>这本书的时候,看到一段Python代码,当时是百思不得其解,总觉得是书中排版出错了,后来去了解了一下sum的用法,看了一些Python大神写的代码后才发现是自己浅薄了!特在此记录一下.书中代码段摘录如下: from math import sqrt def sim_distance(prefs, person1, person2): # 得到shared_items的列表 si = {} for item in prefs[p

  • Numpy之reshape()使用详解

    如下所示: Numpy中reshape的使用方法为:numpy.reshape(a, newshape, order='C') 参数详解: 1.a: type:array_like(伪数组,可以看成是对数组的扩展,但是不影响原始数组.) 需要reshape的array 2.newshape:新的数组 新形状应与原形状兼容.如果是整数,那么结果将是该长度的一维数组.一个形状尺寸可以是-1.在本例中,值是 从数组的长度和剩余维度推断出来的. 3.order: 可选为(C, F, A) C: 按照行来

  • numpy库reshape用法详解

    numpy.reshape(重塑) 给数组一个新的形状而不改变其数据 numpy.reshape(a, newshape, order='C')参数: a:array_like 要重新形成的数组. newshape:int或tuple的整数 新的形状应该与原始形状兼容.如果是整数,则结果将是该长度的1-D数组.一个形状维度可以是-1.在这种情况下,从数组的长度和其余维度推断该值. order:{'C','F','A'}可选 使用此索引顺序读取a的元素,并使用此索引顺序将元素放置到重新形成的数组中

随机推荐