理解多維矩陣的"求和"、"平均"操作確實(shí)太惡心了,numpy提供的函數(shù)里還有一堆參數(shù),搞得暈頭轉(zhuǎn)向的,這里做個(gè)筆記,提醒一下自己, 下面是例程
import numpy as npX = np.array([[1, 2], [4, 5], [7, 8]])PRint np.mean(X, axis=0, keepdims=True)print np.mean(X, axis=1, keepdims=True)結(jié)果是分別是
[[ 1.5] [[ 4. 5.]] [ 4.5] [ 7.5]]我個(gè)人比較raw的認(rèn)識(shí)就是,axis=0,那么輸出矩陣是1行,求每一列的平均(按照每一行去求平均);axis=1,輸出矩陣是1列,求每一行的平均(按照每一列去求平均)。還可以這么理解,axis是幾,那就表明哪一維度被壓縮成1。
再舉個(gè)更復(fù)雜點(diǎn)的例子,比如我們輸入為batch = [128, 28, 28],可以理解為batch=128,圖片大小為28×28像素,我們相求這128個(gè)圖片的均值,應(yīng)該這么寫
m = np.mean(batch, axis=0)輸出結(jié)果m的shape為(28,28),就是這128個(gè)圖片在每一個(gè)像素點(diǎn)平均值。
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。
Numpy簡介
Numpy(Numerical Python的簡稱)是高性能科學(xué)計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包。其部分功能如下:
①ndarray,一個(gè)具有矢量算術(shù)運(yùn)算和復(fù)雜廣播能力的快速且節(jié)省空間的多維數(shù)組。 ②用于對整組數(shù)據(jù)進(jìn)行快速運(yùn)算的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)(無需編寫循環(huán))。 ③用于讀寫磁盤數(shù)據(jù)的工具以及用于操作內(nèi)存映射文件的工具。 ④線性代數(shù)、隨機(jī)數(shù)生成以及傅里葉變換功能。⑤用于集成由C、C++、Fortran等語言編寫的代碼的工具。
創(chuàng)建數(shù)組
創(chuàng)建數(shù)組最簡單的辦法是使用array函數(shù)。它接受一切序列型的對象(包括其他數(shù)組),然后產(chǎn)生一個(gè)新的含有傳入數(shù)據(jù)的NumPy數(shù)組。以一個(gè)列表的轉(zhuǎn)換為例:
[python] view plain copy%20 %20通用函數(shù)(即ufunc)是一種對ndarray中的數(shù)據(jù)執(zhí)行元素級(jí)運(yùn)算的函數(shù)。
[python] view%20plain copy用數(shù)組表達(dá)式代替循環(huán)的做法,通常稱為矢量化 將條件邏輯表述為數(shù)組運(yùn)算
Numpy.where函數(shù)是三元表達(dá)式x if condition else y的矢量化版本
[python] view plain copy[1]. 利用Python進(jìn)行數(shù)據(jù)分析,wes McKinney著,唐學(xué)韜譯,2014年,機(jī)械工業(yè)出版社
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注