好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 深入解析NumPy中的Broadcasting廣播機制

深入解析NumPy中的Broadcasting廣播機制

熱門標簽:小蘇云呼電話機器人 市場上的電銷機器人 朝陽手機外呼系統 所得系統電梯怎樣主板設置外呼 地圖標注面積 北京電銷外呼系統加盟 儋州電話機器人 佛山400電話辦理 北瀚ai電銷機器人官網手機版

前言

在吳恩達老師的深度學習專項課程中,老師有提到NumPy中的廣播機制,同時那一周的測驗也有涉及到廣播機制的題目。那么,到底什么是NumPy中的廣播機制?

官方文檔

接下來到了看官方文檔的時間。

Array Broadcasting in Numpy

廣播機制概述

讓我們探索numpy中一個更高級的概念,這個概念被稱為廣播。 廣播展現了NumPy在算術運算期間是如何處理具有不同形狀的數組的。 受到某些約束,較小的陣列將在較大的陣列上“廣播”,以使它們具有相同形狀。 廣播提供了一種數組矢量化操作,從而使得循環在C而不是Python中發生。 它無需復制不必要的數據即可完成,并且通常算法的效率還挺高。 當然在某些情況下,廣播并不是一個好辦法,因為它會導致內存使用效率低,從而減慢計算速度。 本文通過示例,對廣播進行了詳盡的介紹。 它還提供何時使用廣播的提示。

numpy操作通常是逐個元素完成的,這就需要兩個數組具有完全相同的形狀

Example 1

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

當數組的形狀滿足某些條件時,numpy的廣播規則將放寬這種數組限制。 將數組和標量值在一起運算時,會出現最簡單的廣播示例

Example 2

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

盡管只有一個變量是數組,但是結果和之前的一個代碼例子是一樣的。 我們可以認為其中的標量在算術運算中被拓展成與數組a變量形狀相同的數組。 例如下圖中顯示的中拓展的新元素只是原始標量的副本。這種拓展只是概念上的。 numpy的明智之處在于使用原始標量值而不必要創建副本,從而使廣播操作盡可能地節省內存提高計算效率。 由于上面的代碼例子中,乘法過程中標量移動的內存較少,所以在具有一百萬個元素數組的Windows 2000上,廣播機制與之前的兩個數組相加相比大概快10%。

在最簡單的廣播示例中,標量b被拉伸為與a相同形狀的數組,使得這些形狀適用于逐元素乘法。

下面的規則決定了兩個具有兼容形狀的數組是否可以在單個代碼段中進行廣播。

廣播機制規則

廣播規則

為了廣播,操作中兩個陣列的尾軸的大小必須相同,或者其中一個必須是一個。

問題來了,尾軸是什么?

為此我找到了python - numpy broadcasting - explanation of trailing axes - Stack Overflow這篇解答。

If you have two arrays with different dimensions number, say one 1x2x3 and other 2x3, then you compare only the trailing common dimensions, in this case 2x3. But if both your arrays are two-dimensional, then their corresponding sizes have to be either equal or one of them has to be 1.

In your case you have a 2x2 and 4x2 and 4 != 2 and neither 4 or 2 equals 1, so this doesn't work.

假設你有兩個不同維度的數組。一個是1x2x3,另一個是2x3,那么只需要比較后面的公共尺寸,在這種情況下為2x3。 但是,**如果兩個數組都是二維的,則它們的對應大小必須相等或其中之一必須為1 **。

在兩個二維數組中2x2和4x2,4!= 2,并且4或2都不等于1,所以廣播行不通的。

這個解釋應該比較清楚了。

如果不滿足此條件,則會引發異常,提示數組的形狀不兼容。 廣播操作創建的結果數組的大小是兩個數組中每個維度的最大大小。 請注意,該規則并未說明需要具有相同維數的兩個數組。 如果有一個256 x 256 x 3的RGB值數組,想要按不同的值縮放圖像中的每種顏色,則可以將圖像乘以具有3個值的一維數組。

Image (3d array) 256 x 256 x 3
Scale (1d array) 3
Result (3d array) 256 x 256 x 3

在下面的示例中,兩個數組都具有長度為1的軸,這些軸在廣播操作中被擴展為更大的大小。

A (4d array) 8 x 1 x 6 x 1
B (3d array) 7 x 1 x 5
Result (4d array) 8 x 7 x 6 x 5

下面,是幾個代碼例子和圖形表示,有助于使廣播規則直觀明了。例3將一個一維數組添加到一個二維數組。

Example 3

>>> from numpy import array
>>> a = array([[ 0.0,  0.0,  0.0],
...            [10.0, 10.0, 10.0],
...            [20.0, 20.0, 20.0],
...            [30.0, 30.0, 30.0]])
>>> b = array([1.0, 2.0, 3.0])
>>> a + b
array([[  1.,   2.,   3.],
       [ 11.,  12.,  13.],
       [ 21.,  22.,  23.],
       [ 31.,  32.,  33.]])

如下圖2所示,b將拓展維度大小和a一樣。在圖3中,當b的列維度大于a的時,由于形狀不兼容而引發異常。

如果一維數組元素的數量與二維數組列的數量匹配,則將二維數組乘以一維數組將導致廣播。

當數組的尾部不相等時,廣播將失敗,因為無法將第一個數組的行中的值與第二個數組的元素對齊進行逐元素加法。

廣播提供了一種獲取兩個數組的外部乘積(或任何其他外部操作)的便捷方法。 下面的示例顯示兩個1維數組的外部加法運算,其結果與示例3相同。

Example 4

>>> from numpy import array, newaxis
>>> a = array([0.0, 10.0, 20.0, 30.0])
>>> b = array([1.0, 2.0, 3.0])
>>> a[:,newaxis] + b
array([[  1.,   2.,   3.],
       [ 11.,  12.,  13.],
       [ 21.,  22.,  23.],
       [ 31.,  32.,  33.]])

在這里,newaxis索引運算符將一個新軸插入,使其成為二維4x1數組。 圖4說明了兩個陣列的拉伸以產生所需的4x3輸出陣列。

在這里例子里是b = array([1.0, 2.0, 3.0]),但是下圖中是0,1,2,emmmm…尊重原文吧!

在某些情況下,廣播會拉伸兩個陣列以形成一個比任何一個初始陣列都大的輸出陣列。

總結

以上是對官方文檔的翻譯,總的來說廣播機制主要是以下幾點:

  • 效率較快,性能較好
  • 廣播時,操作中兩個數組的尾軸的大小必須相同,或者其中之一必須是1
  • 如果兩個數組都是二維的,則它們的對應大小必須相等或其中之一必須為1

通過這篇文章,你是否了解了NumPy的廣播機制呢?更多相關NumPy Broadcasting廣播機制內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Numpy數組的廣播機制的實現
  • numpy數組廣播的機制
  • 詳解Numpy中的廣播原則/機制

標簽:寧夏 云南 江蘇 定西 龍巖 酒泉 商丘 金融催收

巨人網絡通訊聲明:本文標題《深入解析NumPy中的Broadcasting廣播機制》,本文關鍵詞  深入,解析,NumPy,中的,Broadcasting,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《深入解析NumPy中的Broadcasting廣播機制》相關的同類信息!
  • 本頁收集關于深入解析NumPy中的Broadcasting廣播機制的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 硬一会就软是什么原因引起的 | 又粗又大又硬又长又猛片| 欧美精品秘?日韩少妇| 女性私密spa| 日韩六九视频| 香蕉久久夜色精品国产小优| 日本在观线免费观看| 在宿舍女装撅着屁股被室友玩| 章子怡三级全部电影| 门卫老头肉校花| 国产精品秘?入口swag小说| 免费毛片在线看片免费丝瓜视频 | 久久久亚洲熟妇熟女ⅩXXXl | 被捆私密憋尿处被棉花堵故事| 啊灬啊灬啊灬快好深视频免费| 杨宗保征服八个寡妇| 美女被黑人巨大进入gif| 原神美女裸体?羞羞尿裤子网站| 美国A片巜禁忌3| 日本一线a视频免费观看| 交换2朋友麦子最后和谁在一起了| 长篇高辣h文合集乱公和小莹| 五月阁色婷婷丁香五月| 天天综合天天做天天综合| 国产成人亚综合91精品首页| 日本黄色动态| 日韩美女网站| 色戒完整158分钟无删减| 啊灬啊灬啊灬快灬高潮了学长| 国产黑色丝袜在线观看视频| 久草毛片| 日韩欧美综合在线二区三区| 太紧了夹得我的巴好爽| 白洁与王乙的第二次| 免费又黄又爽又猛大片午夜| 亚洲无人区视频大全| 看久久| 日批视频播放| 精品久久香蕉国产线观看亚洲内容| 国产精品伦子伦露脸| 99视频在线看|