Theano 中文文檔 0.9 - 7.1.2 NumPy回顧

7.1.2 NumPy回顧

譯者:Python 文檔協(xié)作翻譯小組,原文:NumPy refresher

本文以 CC BY-NC-SA 4.0 協(xié)議發(fā)布,轉(zhuǎn)載請(qǐng)保留作者署名和文章出處。

Python 文檔協(xié)作翻譯小組人手緊缺,有興趣的朋友可以加入我們,完全公益性質(zhì)。交流群:467338606。

這里有一些NumPy的快速指南:

機(jī)器學(xué)習(xí)的矩陣慣例

行是水平的,列是垂直的。每一行都是一個(gè)樣本。因此,inputs[10,5]是10個(gè)樣本的矩陣,其中每個(gè)樣本具有維度5。如果這是神經(jīng)網(wǎng)絡(luò)的輸入,則從輸入到第一個(gè)隱藏層的權(quán)重將表示大小(5, #hid)的矩陣。

考慮這個(gè)數(shù)組:

>>> numpy.asarray([[1., 2], [3, 4], [5, 6]])
array([[ 1.,  2.],
 [ 3.,  4.],
 [ 5.,  6.]])
>>> numpy.asarray([[1., 2], [3, 4], [5, 6]]).shape
(3, 2)

這是3×2矩陣,即有3行和2列。

要訪問第3行(#2行)和第1列(#0列)中的元素:

>>> numpy.asarray([[1., 2], [3, 4], [5, 6]])[2, 0]
5.0

要記住這一點(diǎn),我們從左到右、從上到下讀取,所以連續(xù)的元素是一行。也就是說,有3行和2列。

Broadcasting

Numpy在算術(shù)運(yùn)算期間對(duì)不同形狀的數(shù)組進(jìn)行broadcasting。這通常意味著較小的數(shù)組(或標(biāo)量)被broadcasted到較大的數(shù)組,以讓它們具有兼容的形狀。下面的示例演示broadcastaing的一個(gè)實(shí)例:

>>> a = numpy.asarray([1.0, 2.0, 3.0])
>>> b = 2.0
>>> a * b
array([ 2.,  4.,  6.])

在這種情況下,這里較小的數(shù)組b(實(shí)際上是標(biāo)量,其工作原理類似于一個(gè)0維數(shù)組)在乘法過程中被broadcasted到與a相同的大小。這個(gè)技巧通常用于簡(jiǎn)化表達(dá)式的寫法。有關(guān)broadcasting的更多詳情,請(qǐng)參見numpy用戶指南。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容