≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > Python

Python之聊聊prod()与cumprod()区别cumsum()

人气:320 时间:2021-06-03

这篇文章主要为大家详细介绍了Python之聊聊prod()与cumprod()区别cumsum(),具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的雯雯来看看吧!

pandas.Series.cumprod 官方文档

cumprod()累积连乘

代码如下:


Series.cumprod(axis=None, skipna=True, *args, **kwargs)
#实现功能:Return cumulative product over a DataFrame or Series axis.
#实现功能:Returns a DataFrame or Series of the same size containing the cumulative product.
#return:scalar or Series

聊聊prod()与cumprod()区别cumsum()

cumsum()累积连加

pandas.Series.prod官方文档

代码如下:



Series.prod(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)
# 实现功能:Return the product of the values for the requested axis.
# return:scalar or Series

聊聊prod()与cumprod()区别cumsum()

优点没看明白,因为常规情况下,所用的.prod()并非pandas下的函数,而是numpy下的函数。

numpy.prod官方文档

代码如下:


numpy.prod(a, axis=None, dtype=None, out=None, keepdims=<class numpy._globals._NoValue>)
# 实现功能:Return the product of array elements over a given axis.
# return:product_along_axis : ndarray

聊聊prod()与cumprod()区别cumsum()

返回给定轴上数组元素的乘积。

跟cumprod不同,cumprod是计算当前一个累积乘上前面所有的数据,更多是一个list;prod返回的是给定这个轴上最终一个值。

 

补充:【python初学者】简单易懂的图解:np.cumsum和np.cumprod函数到底在干嘛?

 

1.np.cumsum

本人是一名python小白,最近过完了python的基本知识后,在看《利用python进行数据分析》这本书,书中cumsum函数一笔带过留下本小白“懵逼树下你和我”,当然是我自己的问题不是书的问题,经过画图理解后渐渐明白了这个函数到底在干么。

1.1np.cumsum-轴的概念

首先,在学习cumsum函数之前我们应该先明白什么是轴,以下面代码来进行说明:

代码如下:


arr=np.arange(1,17,1).reshape((2,2,4))
arr

聊聊prod()与cumprod()区别cumsum()

代码如下:


array([[[ 1,  2,  3,  4],
        [ 5,  6,  7,  8]],

       [[ 9, 10, 11, 12],
        [13, 14, 15, 16]]])

聊聊prod()与cumprod()区别cumsum()

其实数组的轴(axis)就是数组的维度,上面的代码生成了一个224的数组,所以

 

1、这个数组的0轴为2

,axis=0

 

 

2、这个数组的1轴为2

,axis=1

 

 

3、这个数组的2轴为4

,axis=2

 

该数组如图所示(蓝,橙,黄,绿都是2轴,橙和绿上的“2轴”画图时忘了标注):

 

这里还要补充说一下:红色的数字只是因为我用的iPad画图很不方便所以没改成黑色,忽略就好

1.2cumsum(axis=0)

 

cumsum作用

:计算轴向元素累加和,返回由中间结果组成的数组

 

这句概念中我认为大家理解起来比较难受的地方应该是轴向元素累加。

首先,通过前文对轴概念的理解我们可以知道

axis=0代表着最外层的维度也就是0轴(这里可能说法不太正确,主要为了配合上节图片),所以就是0轴的累加计算,我们以前文用到的数组为例(红色虚线表示按照0轴进行累加):

 

step1:

 

沿着0轴进行累加

 

 

step2:

 

将[1,2,3,4]和[9,10,11,12]进行累加,将[5,6,7,8]和[13,14,15,16]

 

代码:

代码如下:


arr=np.array([[[ 1,  2,  3,  4],
               [ 5,  6,  7,  8]],
              [[ 9, 10, 11, 12],
               [13, 14, 15, 16]]])
arr.cumsum(axis=0)

聊聊prod()与cumprod()区别cumsum()

结果为:

代码如下:


array([[[ 1,  2,  3,  4],
        [ 5,  6,  7,  8]],

       [[10, 12, 14, 16],
        [18, 20, 22, 24]]])

聊聊prod()与cumprod()区别cumsum()

1.3cumsum(axis=1)

这里我们还是以之前举例的数组为例,沿着1轴进行累加(也就是2 * 2 * 4中的第二个2),这里为了方便讲解我将数组的摆放位置换了一下,不影响哈~

step1:

红色虚线代表我们现在应该沿着1轴进行累加啦!

step2:

既然沿着1轴进行累加,我们是不是就应该在1轴内部进行累加呢?

所以就应该[1,2,3,4]和[5,6,7,8]进行累加,[9,10,11,12]和[13,14,15,16]进行累加

代码如下:


arr.cumsum(axis=1)
#运行结果
array([[[ 1,  2,  3,  4],
        [ 6,  8, 10, 12]],

       [[ 9, 10, 11, 12],
        [22, 24, 26, 28]]])

聊聊prod()与cumprod()区别cumsum()

1.4cumsum(axis=2)

都已经讲到沿着轴2进行累加了,废话就不多说了直接放图,大家看看有没有做对吧

step1:

老规矩:红色虚线表示沿着2轴进行累加,所以应该是1,2,3,4进行累加,5,6,7,8进行累加,依次类推

step2

我们以蓝色这一项为例:

第一项:1第二项:1+2=3第三项:1+2+3=6第四项:1+2+3+4=10

代码结果:

代码如下:


arr.cumsum(axis=2)
#运行结果
array([[[ 1,  3,  6, 10],
        [ 5, 11, 18, 26]],

       [[ 9, 19, 30, 42],
        [13, 27, 42, 58]]])

聊聊prod()与cumprod()区别cumsum()

讲到这里我相信大家应该能自己摸索出cumprod函数在干嘛啦!本篇文章里面因为需要结合图片进行讲解所以有些句子并不恰当~希望本篇文章能够让你明白cumsum函数到底在干嘛呀~

本文来自:http://www.q1010.com/181/18655-0.html

注:关于Python之聊聊prod()与cumprod()区别cumsum()的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:python

您可能感兴趣的文章

  • Python之搭建爬虫管理平台的简单示例
  • Python之像线程一样管理进程的Python multiprocessing库示例
  • 解决tensorflow 与keras 混用的问题
  • Python爬虫之批量下载喜马拉雅音频的简单示例
  • Python之numpy实现topk函数操作(并排序)的简单示例
  • Python之request请求得到的response的属性问题
  • Python之emoji表情的简单示例
  • Python之文档批量翻译工具效果竟然超出想象
  • Python统计可散列的对象之容器Counter的简单示例
  • Python之dataframe两列相乘构造新特征
上一篇:Python之keras中import keras.backend as K的含义说明
下一篇:Python之像线程一样管理进程的Python multiprocessing库示例
热门文章
  • Python 处理Cookie的菜鸟教程(一)Cookie库
  • python之pandas取dataframe特定行列的简单示例
  • Python解决json.dumps错误::‘utf8’ codec can‘t decode byte
  • Python通过pythony连接Hive执行Hql的脚本
  • Python 三种方法删除列表中重复元素的简单示例
  • python爬虫代码示例
  • Python 中英文标点转换示例
  • Python 不得不知的开源项目解析
  • Python urlencode编码和url拼接实现方法
  • python按中文拆分中英文混合字符串的简单示例
  • 最新文章
    • Python利用numpy三层神经网络的简单示例
    • pygame可视化幸运大转盘的简单示例
    • Python爬虫之爬取二手房信息的简单示例
    • Python之time库的简单示例
    • OpenCV灰度、高斯模糊、边缘检测的简单示例
    • Python安装Bs4及使用的简单示例
    • django自定义manage.py管理命令的简单示例
    • Python之matplotlib 向任意位置添加一个子图(axes)的简单示例
    • Python图像标签标注软件labelme分析的简单示例
    • python调用摄像头并拍照发邮箱的简单示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。