Theano 中文文檔 0.9 - 7.1.2 NumPy回顧

7.1.2 NumPy回顧

譯者:Python 文檔協作翻譯小組,原文:NumPy refresher。

本文以 CC BY-NC-SA 4.0 協議發布,轉載請保留作者署名和文章出處。

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

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

機器學習的矩陣慣例

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

考慮這個數組:

>>> 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

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

Broadcasting

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

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

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容