佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 聊聊prod()與cumprod()區(qū)別cumsum()

聊聊prod()與cumprod()區(qū)別cumsum()

熱門標(biāo)簽:電話運(yùn)營(yíng)中心 百度AI接口 Win7旗艦版 呼叫中心市場(chǎng)需求 語(yǔ)音系統(tǒng) 硅谷的囚徒呼叫中心 客戶服務(wù) 企業(yè)做大做強(qiáng)

pandas.Series.cumprod 官方文檔

cumprod()累積連乘

Series.cumprod(axis=None, skipna=True, *args, **kwargs)
#實(shí)現(xiàn)功能:Return cumulative product over a DataFrame or Series axis.
#實(shí)現(xiàn)功能:Returns a DataFrame or Series of the same size containing the cumulative product.
#return:scalar or Series

cumsum()累積連加

pandas.Series.prod官方文檔


Series.prod(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)
# 實(shí)現(xiàn)功能:Return the product of the values for the requested axis.
# return:scalar or Series

優(yōu)點(diǎn)沒(méi)看明白,因?yàn)槌R?guī)情況下,所用的.prod()并非pandas下的函數(shù),而是numpy下的函數(shù)。

numpy.prod官方文檔

numpy.prod(a, axis=None, dtype=None, out=None, keepdims=class numpy._globals._NoValue>)
# 實(shí)現(xiàn)功能:Return the product of array elements over a given axis.
# return:product_along_axis : ndarray

返回給定軸上數(shù)組元素的乘積。

跟cumprod不同,cumprod是計(jì)算當(dāng)前一個(gè)累積乘上前面所有的數(shù)據(jù),更多是一個(gè)list;prod返回的是給定這個(gè)軸上最終一個(gè)值。

補(bǔ)充:【python初學(xué)者】簡(jiǎn)單易懂的圖解:np.cumsum和np.cumprod函數(shù)到底在干嘛?

1.np.cumsum

本人是一名python小白,最近過(guò)完了python的基本知識(shí)后,在看《利用python進(jìn)行數(shù)據(jù)分析》這本書(shū),書(shū)中cumsum函數(shù)一筆帶過(guò)留下本小白“懵逼樹(shù)下你和我”,當(dāng)然是我自己的問(wèn)題不是書(shū)的問(wèn)題,經(jīng)過(guò)畫(huà)圖理解后漸漸明白了這個(gè)函數(shù)到底在干么。

1.1np.cumsum-軸的概念

首先,在學(xué)習(xí)cumsum函數(shù)之前我們應(yīng)該先明白什么是軸,以下面代碼來(lái)進(jìn)行說(shuō)明:

arr=np.arange(1,17,1).reshape((2,2,4))
arr
array([[[ 1,  2,  3,  4],
        [ 5,  6,  7,  8]],

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

其實(shí)數(shù)組的軸(axis)就是數(shù)組的維度,上面的代碼生成了一個(gè)224的數(shù)組,所以

1、這個(gè)數(shù)組的0軸為2 ,axis=0

2、這個(gè)數(shù)組的1軸為2 ,axis=1

3、這個(gè)數(shù)組的2軸為4 ,axis=2

該數(shù)組如圖所示(藍(lán),橙,黃,綠都是2軸,橙和綠上的“2軸”畫(huà)圖時(shí)忘了標(biāo)注):

這里還要補(bǔ)充說(shuō)一下:紅色的數(shù)字只是因?yàn)槲矣玫膇Pad畫(huà)圖很不方便所以沒(méi)改成黑色,忽略就好

1.2cumsum(axis=0)

cumsum作用計(jì)算軸向元素累加和,返回由中間結(jié)果組成的數(shù)組

這句概念中我認(rèn)為大家理解起來(lái)比較難受的地方應(yīng)該是軸向元素累加。

首先,通過(guò)前文對(duì)軸概念的理解我們可以知道

axis=0代表著最外層的維度也就是0軸(這里可能說(shuō)法不太正確,主要為了配合上節(jié)圖片),所以就是0軸的累加計(jì)算,我們以前文用到的數(shù)組為例(紅色虛線表示按照0軸進(jìn)行累加):

step1:

沿著0軸進(jìn)行累加

step2:

將[1,2,3,4]和[9,10,11,12]進(jìn)行累加,將[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)

結(jié)果為:

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

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

1.3cumsum(axis=1)

這里我們還是以之前舉例的數(shù)組為例,沿著1軸進(jìn)行累加(也就是2 * 2 * 4中的第二個(gè)2),這里為了方便講解我將數(shù)組的擺放位置換了一下,不影響哈~

step1:

紅色虛線代表我們現(xiàn)在應(yīng)該沿著1軸進(jìn)行累加啦!

step2:

既然沿著1軸進(jìn)行累加,我們是不是就應(yīng)該在1軸內(nèi)部進(jìn)行累加呢?

所以就應(yīng)該[1,2,3,4]和[5,6,7,8]進(jìn)行累加,[9,10,11,12]和[13,14,15,16]進(jìn)行累加

代碼結(jié)果:

arr.cumsum(axis=1)
#運(yùn)行結(jié)果
array([[[ 1,  2,  3,  4],
        [ 6,  8, 10, 12]],

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

1.4cumsum(axis=2)

都已經(jīng)講到沿著軸2進(jìn)行累加了,廢話就不多說(shuō)了直接放圖,大家看看有沒(méi)有做對(duì)吧

step1:

老規(guī)矩:紅色虛線表示沿著2軸進(jìn)行累加,所以應(yīng)該是1,2,3,4進(jìn)行累加,5,6,7,8進(jìn)行累加,依次類推

step2

我們以藍(lán)色這一項(xiàng)為例:

第一項(xiàng):1第二項(xiàng):1+2=3第三項(xiàng):1+2+3=6第四項(xiàng):1+2+3+4=10

代碼結(jié)果:

arr.cumsum(axis=2)
#運(yùn)行結(jié)果
array([[[ 1,  3,  6, 10],
        [ 5, 11, 18, 26]],

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

講到這里我相信大家應(yīng)該能自己摸索出cumprod函數(shù)在干嘛啦!本篇文章里面因?yàn)樾枰Y(jié)合圖片進(jìn)行講解所以有些句子并不恰當(dāng)~希望本篇文章能夠讓你明白cumsum函數(shù)到底在干嘛呀~

您可能感興趣的文章:
  • python numpy中cumsum的用法詳解
  • python cumsum函數(shù)的具體使用
  • python pandas cumsum求累計(jì)次數(shù)的用法

標(biāo)簽:山西 山西 海南 安康 長(zhǎng)沙 濟(jì)南 喀什 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《聊聊prod()與cumprod()區(qū)別cumsum()》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    保靖县| 缙云县| 桓台县| 河曲县| 琼结县| 岗巴县| 乌鲁木齐县| 伊吾县| 清苑县| 黔西县| 喀喇沁旗| 克什克腾旗| 朝阳区| 蒙阴县| 周口市| 田林县| 彩票| 鹤山市| 长泰县| 丽江市| 福建省| 三都| 岑巩县| 阳曲县| 卓尼县| 绥化市| 旬邑县| 定南县| 徐州市| 永泰县| 芜湖市| 大悟县| 莲花县| 酒泉市| 台南市| 高要市| 建平县| 姚安县| 内黄县| 海宁市| 镇坪县|