一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

最詳細(xì)的 NumPy 圖解教程!

數(shù)據(jù)分析與開發(fā) ? 來源:大數(shù)據(jù)文摘 ? 作者:大數(shù)據(jù)文摘 ? 2021-06-09 18:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

NumPy是Python中用于數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、科學(xué)計算的重要軟件包。它極大地簡化了向量和矩陣的操作及處理。python的不少數(shù)據(jù)處理軟件包依賴于NumPy作為其基礎(chǔ)架構(gòu)的核心部分(例如scikit-learn、SciPy、pandas和tensorflow)。除了數(shù)據(jù)切片和數(shù)據(jù)切塊的功能之外,掌握numpy也使得開發(fā)者在使用各數(shù)據(jù)處理庫調(diào)試和處理復(fù)雜用例時更具優(yōu)勢。

在本文中,將介紹NumPy的主要用法,以及它如何呈現(xiàn)不同類型的數(shù)據(jù)(表格,圖像,文本等),這些經(jīng)Numpy處理后的數(shù)據(jù)將成為機(jī)器學(xué)習(xí)模型的輸入。

NumPy中的數(shù)組操作

創(chuàng)建數(shù)組

我們可以通過將python列表傳入np.array()來創(chuàng)建一個NumPy數(shù)組(也就是強(qiáng)大的ndarray)。在下面的例子里,創(chuàng)建出的數(shù)組如右邊所示,通常情況下,我們希望NumPy為我們初始化數(shù)組的值,為此NumPy提供了諸如ones(),zeros()和random.random()之類的方法。我們只需傳入元素個數(shù)即可:

d3cfeb46-c540-11eb-9e57-12bb97331649.jpg

一旦我們創(chuàng)建了數(shù)組,我們就可以用其做點(diǎn)有趣的應(yīng)用了,文摘菌將在下文展開說明。

數(shù)組的算術(shù)運(yùn)算

讓我們創(chuàng)建兩個NumPy數(shù)組,分別稱作data和ones:

d3e802c6-c540-11eb-9e57-12bb97331649.png

若要計算兩個數(shù)組的加法,只需簡單地敲入data + ones,就可以實(shí)現(xiàn)對應(yīng)位置上的數(shù)據(jù)相加的操作(即每行數(shù)據(jù)進(jìn)行相加),這種操作比循環(huán)讀取數(shù)組的方法代碼實(shí)現(xiàn)更加簡潔。

當(dāng)然,在此基礎(chǔ)上舉一反三,也可以實(shí)現(xiàn)減法、乘法和除法等操作:

d40961aa-c540-11eb-9e57-12bb97331649.jpg

許多情況下,我們希望進(jìn)行數(shù)組和單個數(shù)值的操作(也稱作向量和標(biāo)量之間的操作)。比如:如果數(shù)組表示的是以英里為單位的距離,我們的目標(biāo)是將其轉(zhuǎn)換為公里數(shù)??梢院唵蔚膶懽鱠ata * 1.6:

d42978a0-c540-11eb-9e57-12bb97331649.png

NumPy通過數(shù)組廣播(broadcasting)知道這種操作需要和數(shù)組的每個元素相乘。

數(shù)組的切片操作

我們可以像python列表操作那樣對NumPy數(shù)組進(jìn)行索引和切片,如下圖所示:

d43fb14c-c540-11eb-9e57-12bb97331649.png

聚合函數(shù)

NumPy為我們帶來的便利還有聚合函數(shù),聚合函數(shù)可以將數(shù)據(jù)進(jìn)行壓縮,統(tǒng)計數(shù)組中的一些特征值:

d44b62b2-c540-11eb-9e57-12bb97331649.jpg

除了min,max和sum等函數(shù),還有mean(均值),prod(數(shù)據(jù)乘法)計算所有元素的乘積,std(標(biāo)準(zhǔn)差),等等。上面的所有例子都在一個維度上處理向量。除此之外,NumPy之美的一個關(guān)鍵之處是它能夠?qū)⒅八吹降乃泻瘮?shù)應(yīng)用到任意維度上。

NumPy中的矩陣操作

創(chuàng)建矩陣

我們可以通過將二維列表傳給Numpy來創(chuàng)建矩陣。

np.array([[1,2],[3,4]])

除此外,也可以使用上文提到的ones()、zeros()和random.random()來創(chuàng)建矩陣,只需傳入一個元組來描述矩陣的維度:

d4688572-c540-11eb-9e57-12bb97331649.jpg

矩陣的算術(shù)運(yùn)算

對于大小相同的兩個矩陣,我們可以使用算術(shù)運(yùn)算符(+-*/)將其相加或者相乘。NumPy對這類運(yùn)算采用對應(yīng)位置(position-wise)操作處理:

d476619c-c540-11eb-9e57-12bb97331649.png

對于不同大小的矩陣,只有兩個矩陣的維度同為1時(例如矩陣只有一列或一行),我們才能進(jìn)行這些算術(shù)運(yùn)算,在這種情況下,NumPy使用廣播規(guī)則(broadcast)進(jìn)行操作處理:

d4a5dd46-c540-11eb-9e57-12bb97331649.jpg

與算術(shù)運(yùn)算有很大區(qū)別是使用點(diǎn)積的矩陣乘法。NumPy提供了dot()方法,可用于矩陣之間進(jìn)行點(diǎn)積運(yùn)算:

d4d56c32-c540-11eb-9e57-12bb97331649.png

上圖的底部添加了矩陣尺寸,以強(qiáng)調(diào)運(yùn)算的兩個矩陣在列和行必須相等。可以將此操作圖解為如下所示:

d4eb2338-c540-11eb-9e57-12bb97331649.jpg

矩陣的切片和聚合

索引和切片功能在操作矩陣時變得更加有用。可以在不同維度上使用索引操作來對數(shù)據(jù)進(jìn)行切片。

我們可以像聚合向量一樣聚合矩陣。

不僅可以聚合矩陣中的所有值,還可以使用axis參數(shù)指定行和列的聚合。

矩陣的轉(zhuǎn)置和重構(gòu)

處理矩陣時經(jīng)常需要對矩陣進(jìn)行轉(zhuǎn)置操作,常見的情況如計算兩個矩陣的點(diǎn)積。NumPy數(shù)組的屬性T可用于獲取矩陣的轉(zhuǎn)置。

在較為復(fù)雜的用例中,你可能會發(fā)現(xiàn)自己需要改變某個矩陣的維度。這在機(jī)器學(xué)習(xí)應(yīng)用中很常見,例如模型的輸入矩陣形狀與數(shù)據(jù)集不同,可以使用NumPy的reshape()方法。只需將矩陣所需的新維度傳入即可。也可以傳入-1,NumPy可以根據(jù)你的矩陣推斷出正確的維度。

上文中的所有功能都適用于多維數(shù)據(jù),其中心數(shù)據(jù)結(jié)構(gòu)稱為ndarray(N維數(shù)組)。

很多時候,改變維度只需在NumPy函數(shù)的參數(shù)中添加一個逗號,如下圖所示:

d59f8882-c540-11eb-9e57-12bb97331649.jpg

NumPy中的公式應(yīng)用示例

NumPy的關(guān)鍵用例是實(shí)現(xiàn)適用于矩陣和向量的數(shù)學(xué)公式。這也Python中常用NumPy的原因。例如,均方誤差是監(jiān)督機(jī)器學(xué)習(xí)模型處理回歸問題的核心:

d5b3750e-c540-11eb-9e57-12bb97331649.png

在NumPy中可以很容易地實(shí)現(xiàn)均方誤差:

d63e1ec0-c540-11eb-9e57-12bb97331649.jpg

這樣做的好處是,numpy無需考慮predictions與labels具體包含的值。文摘菌將通過一個示例來逐步執(zhí)行上面代碼行中的四個操作:

d66c614a-c540-11eb-9e57-12bb97331649.png

預(yù)測(predictions)和標(biāo)簽(labels)向量都包含三個值。這意味著n的值為3。在我們執(zhí)行減法后,我們最終得到如下值:

d68c8c5e-c540-11eb-9e57-12bb97331649.png

然后我們可以計算向量中各值的平方:

d696a7a2-c540-11eb-9e57-12bb97331649.png

現(xiàn)在我們對這些值求和:

d6abd0d2-c540-11eb-9e57-12bb97331649.png

最終得到該預(yù)測的誤差值和模型質(zhì)量分?jǐn)?shù)。

用NumPy表示日常數(shù)據(jù)

日常接觸到的數(shù)據(jù)類型,如電子表格,圖像,音頻。。.。。.等,如何表示呢?Numpy可以解決這個問題。

表和電子表格

電子表格或數(shù)據(jù)表都是二維矩陣。電子表格中的每個工作表都可以是自己的變量。python中類似的結(jié)構(gòu)是pandas數(shù)據(jù)幀(dataframe),它實(shí)際上使用NumPy來構(gòu)建的。

音頻和時間序列

音頻文件是一維樣本數(shù)組。每個樣本都是代表一小段音頻信號的數(shù)字。CD質(zhì)量的音頻每秒可能有44,100個采樣樣本,每個樣本是一個-65535到65536之間的整數(shù)。這意味著如果你有一個10秒的CD質(zhì)量的WAVE文件,你可以將它加載到長度為10 * 44,100 = 441,000個樣本的NumPy數(shù)組中。想要提取音頻的第一秒?只需將文件加載到我們稱之為audio的NumPy數(shù)組中,然后截取audio[:44100]。

時間序列數(shù)據(jù)也是如此(例如,股票價格隨時間變化的序列)。

圖像

圖像是大小為(高度×寬度)的像素矩陣。如果圖像是黑白圖像(也稱為灰度圖像),則每個像素可以由單個數(shù)字表示(通常在0(黑色)和255(白色)之間)。如果對圖像做處理,裁剪圖像的左上角10 x 10大小的一塊像素區(qū)域,用NumPy中的image[:10,:10]就可以實(shí)現(xiàn)。

如果圖像是彩色的,則每個像素由三個數(shù)字表示 :紅色,綠色和藍(lán)色。在這種情況下,我們需要第三維(因?yàn)槊總€單元格只能包含一個數(shù)字)。因此彩色圖像由尺寸為(高x寬x 3)的ndarray表示。

語言

如果我們處理文本,情況就會有所不同。用數(shù)字表示文本需要兩個步驟,構(gòu)建詞匯表(模型知道的所有唯一單詞的清單)和嵌入(embedding)。讓我們看看用數(shù)字表示這個(翻譯的)古語引用的步驟:“Have the bards who preceded me left any theme unsung?”

模型需要先訓(xùn)練大量文本才能用數(shù)字表示這位戰(zhàn)場詩人的詩句。我們可以讓模型處理一個小數(shù)據(jù)集,并使用這個數(shù)據(jù)集來構(gòu)建一個詞匯表(71,290個單詞)。

然后可以將句子劃分成一系列“詞”token(基于通用規(guī)則的單詞或單詞部分)。

然后我們用詞匯表中的id替換每個單詞。

這些ID仍然不能為模型提供有價值的信息。因此,在將一系列單詞送入模型之前,需要使用嵌入(embedding)來替換token/單詞(在本例子中使用50維度的word2vec嵌入)。

你可以看到此NumPy數(shù)組的維度為[embedding_dimension x sequence_length]。

在實(shí)踐中,這些數(shù)值不一定是這樣的,但我以這種方式呈現(xiàn)它是為了視覺上的一致。出于性能原因,深度學(xué)習(xí)模型傾向于保留批數(shù)據(jù)大小的第一維(因?yàn)槿绻⑿杏?xùn)練多個示例,則可以更快地訓(xùn)練模型)。很明顯,這里非常適合使用reshape()。例如,像BERT這樣的模型會期望其輸入矩陣的形狀為:[batch_size,sequence_length,embedding_size]。

這是一個數(shù)字合集,模型可以處理并執(zhí)行各種有用的操作。我留空了許多行,可以用其他示例填充以供模型訓(xùn)練(或預(yù)測)。

事實(shí)證明,在我們的例子中,那位詩人的話語比其他詩人的詩句更加名垂千古。盡管生而為奴,詩人安塔拉(Antarah)的英勇和語言能力使他獲得了自由和神話般的地位,他的詩是伊斯蘭教以前的阿拉伯半島《懸詩》的七首詩之一。

轉(zhuǎn)自:大數(shù)據(jù)文摘

原文鏈接:https://jalammar.github.io/visual-numpy/

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STD
    STD
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    14541
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86680
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1224

    瀏覽量

    25434

原文標(biāo)題:這是我見過最好的 NumPy 圖解教程!

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    圖解單片機(jī)功能與應(yīng)用(完整版)

    從基礎(chǔ)知識的介紹出發(fā),圖文并茂,直觀、系統(tǒng)地介紹了單片機(jī)的內(nèi)部結(jié)構(gòu)、工作原理和應(yīng)用技巧。全書分為10章,內(nèi)容包括51單片機(jī)編程資源圖解、51單片機(jī)指令系統(tǒng)圖解、匯編語言程序設(shè)計圖解、輸入/輸出
    發(fā)表于 06-16 16:52

    非常詳細(xì)的無線充電原理和原理圖解

    獲取完整文檔資料可下載附件哦?。。?!如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評論支持一下哦~
    發(fā)表于 06-04 15:27

    PID控制原理知識詳細(xì)文檔【推薦下載】

    文檔詳細(xì)介紹了控制系統(tǒng)歷程、控制系統(tǒng)概況、反饋控制原理圖、閉環(huán)控制系統(tǒng)的例子等內(nèi)容,具體的建議下載查看。 這是部分截圖:
    發(fā)表于 05-22 17:37

    每周推薦!電子工程師自學(xué)資料及各種電路解析

    1、濾波電路(多種設(shè)計方案+原理圖) 包含下面這幾個及其經(jīng)典的資料相對會對大家詳細(xì)深入的了解濾波有很大的幫助: 濾波電路及其設(shè)計 常見的濾波電路 電源濾波電路 2、電子工程師自學(xué)速成
    發(fā)表于 05-19 18:20

    漫畫圖解 電感器 抗干擾元器件指南(全彩PDF版)

    漫畫圖解電感基礎(chǔ)知識(高清PDF) 內(nèi)容:很形象的漫畫和語言圖解關(guān)于電感器的入門基礎(chǔ)知識,讓電子初學(xué)者也能輕松的看懂電子電路。 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評論支持一下哦~)
    發(fā)表于 05-13 15:49

    openstack搭建詳細(xì)步驟

    openstack搭建詳細(xì)步驟
    的頭像 發(fā)表于 05-07 14:05 ?977次閱讀

    PCB封裝圖解

    PCB封裝圖解——詳細(xì)介紹了各種封裝的具體參數(shù),并介紹了如何進(jìn)行封裝制作 純分享貼,有需要可以直接下載附件獲取文檔! (如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評論支持一下哦~)
    發(fā)表于 04-22 13:44

    110kV變電站典型二次回路圖解

    電子發(fā)燒友網(wǎng)站提供《110kV變電站典型二次回路圖解.pdf》資料免費(fèi)下載
    發(fā)表于 03-31 16:57 ?4次下載

    無刷電機(jī)的繞制和接線方法及實(shí)物圖解

    下方附件可打開*附件:無刷電機(jī)的繞制和接線方法及實(shí)物圖解.doc
    發(fā)表于 03-17 20:00

    數(shù)字萬用表的使用方法詳細(xì)圖解

    現(xiàn)在,數(shù)字式測量儀表已成為主流,有取代模擬式儀表的趨勢。與模擬式儀表相 比,數(shù)字式儀表靈敏度高,準(zhǔn)確度高,顯示清晰,過載能力強(qiáng),便于攜帶,使用 更簡單。下面以 VC9802型數(shù)字萬用表為例,簡單介紹其使用方法和注意事項(xiàng)。 (1)使用方法 a使用前,應(yīng)認(rèn)真閱讀有關(guān)的使用說明書,熟悉電源開關(guān)、量程開關(guān)、插孔、特 殊插口的作用. b將電源開關(guān)置于 ON位置。 c交直流電壓的測量:根據(jù)需要將量程開關(guān)撥至 DCV(直流)或 ACV(交流)的 合適量程,紅表筆插入 V/Ω 孔,黑表筆插入 COM孔,并將表筆與被測線路并聯(lián), 讀數(shù)即顯示。 d交直流電流的測量:將量程開關(guān)撥至 DCA(直流)或 ACA(交流)的合適量程, 紅表筆插入 mA孔(<200mA時)或 10A孔(>200mA時),黑表筆插入 COM孔, 并將萬用表串聯(lián)在被測電路中即可。測量直流量時,數(shù)字萬用表能自動顯示極性。 e電阻的測量:將量程開關(guān)撥至 Ω 的合適量程,紅表筆插入 V/Ω 孔,黑表筆 插入 COM孔。如果被測電阻值超出所選擇量程的最大值,萬用表將顯示 1 , 這時應(yīng)選擇更高的量程。測量電阻時,紅表筆為正極,黑表筆為負(fù)極,這與指針 式萬用表正好相反。因此,測量晶體管、電解電容器等有極性的元器件時,必須 注意表筆的極性。 (2).使用注意事項(xiàng) a如果無法預(yù)先估計被測電壓或電流的大小,則應(yīng)先撥至最高量程擋測量一次, 再視情況逐漸把量程減小到合適位置。測量完畢,應(yīng)將量程開關(guān)撥到最高電壓擋, 并關(guān)閉電源。 b滿量程時,儀表僅在最高位顯示數(shù)字 1 ,其它位均消失,這時應(yīng)選擇更高 的量程。 c測量電壓時,應(yīng)將數(shù)字萬用表與被測電路并聯(lián)。測電流時應(yīng)與被測電路串聯(lián), 測直流量時不必考慮正、負(fù)極性。 d當(dāng)誤用交流電壓擋去測量直流電壓,或者誤用直流電壓擋去測量交流電壓時, 顯示屏將顯示 000 ,或低位上的數(shù)字出現(xiàn)跳動。 e禁止在測量高電壓(220V以上)或大電流(0.5A以上)時換量程,以防止產(chǎn) 生電弧,燒毀開關(guān)觸點(diǎn)。 f當(dāng)顯示 、 BATT 或 LOWBAT 時,表示電池電壓低于工作電壓。 一、指針表和數(shù)字表的選用: 1、指針表讀取精度較差,但指針擺動的過程比較直觀,其擺動速度幅度有時也能比較 客觀地反映了被測量的大?。ū热鐪y電視機(jī)數(shù)據(jù)總線(SDL)在傳送數(shù)據(jù)時的輕微抖動); 數(shù)字表讀數(shù)直觀,但數(shù)字變化的過程看起來很雜亂,不太容易觀看。 2、指針表內(nèi)一般有兩塊電池,一塊低電壓的 1.5V,一塊是高電壓的 9V 或 15V,其黑 表筆相對紅表筆來說是正端。數(shù)字表則常用一塊 6V 或 9V 的電池。在電阻檔,指針表 的表筆輸出電流相對數(shù)字表來說要大很多,用 R×1|? 檔可以使揚(yáng)聲器發(fā)出響亮的“噠” 聲,用 R×10k|? 檔甚至可以點(diǎn)亮發(fā)光二極管(LED)。 3、在電壓檔,指針表內(nèi)阻相對數(shù)字表來說比較小,測量精度相比較差。某些高電壓微 電流的場合甚至無法測準(zhǔn),因?yàn)槠鋬?nèi)阻會對被測電路造成影響(比如在測電視機(jī)顯像管 的加速級電壓時測量值會比實(shí)際值低很多)。數(shù)字表電壓檔的內(nèi)阻很大,至少在兆歐級, 對被測電路影響很小。但極高的輸出阻抗使其易受感應(yīng)電壓的影響,在一些電磁干擾比 較強(qiáng)的場合測出的數(shù)據(jù)可能是虛的。 4、總之,在相對來說大電流高電壓的模擬電路測量中適用指針表,比如電視機(jī)、音響 功放。在低電壓小電流的數(shù)字電路測量中適用數(shù)字表,比如 BP 機(jī)、手機(jī)等。不是絕對 的,可根據(jù)情況選用指針表和數(shù)字表。 文件過大,大家下載附件查看全文哦!
    發(fā)表于 03-05 15:15

    使用micropython的ulab.numpy切片將RGB888的NHWC格式轉(zhuǎn)換為RGBP888的NCHW格式,速度非常慢怎么解決?

    轉(zhuǎn)換代碼如下.每次轉(zhuǎn)換需要花費(fèi)200ms以上. rgb888_img_np = rgb888_img.to_numpy_ref()rgb888p_img_np = np.zeros((3
    發(fā)表于 02-08 07:25

    各種電子稱主板接線圖

    內(nèi)容包括市面上大部分電子秤主板接線,彩色圖解,生動詳細(xì)
    發(fā)表于 11-12 14:07 ?1次下載

    名單公布!【書籍評測活動NO.50】親歷芯片產(chǎn)線,輕松圖解芯片制造,揭秘芯片工廠的秘密

    半導(dǎo)體部門總經(jīng)理和總工程師。著有多本暢銷科普圖書。 本書秉承了日式科普書風(fēng)格,通過大量原理圖片和實(shí)物圖片,以圖解形式、輕松有趣講解了芯片制造工廠的基礎(chǔ)設(shè)施、制造工藝、原理、設(shè)備、材料、檢驗(yàn)等相關(guān)信息
    發(fā)表于 11-04 15:38

    思嵐科技SLAMKit定位與建圖解決方案介紹

    2023年11月,面對客戶高效穩(wěn)定的定位和建圖需求,思嵐科技以業(yè)界創(chuàng)新的產(chǎn)品形態(tài)提供了SLAMKit定位和建圖解決方案,以軟件授權(quán)的方式嵌入運(yùn)行在機(jī)器人的主控器中,并為機(jī)器人提供環(huán)境建模與自主定位的能力。
    的頭像 發(fā)表于 09-13 11:20 ?885次閱讀
    思嵐科技SLAMKit定位與建<b class='flag-5'>圖解</b>決方案介紹

    雙向可控硅工作原理圖解

    端子)、T2(第二陽極或第一端子)和G(控制極或閘極)。 相比于單向可控硅,雙向可控硅不再有陽極和陰極的區(qū)分,而是用T1和T2來表示其兩個主電極。 二、雙向可控硅的工作原理圖解 雙向可控硅的調(diào)光電路工作原理說明一接通電源,220V經(jīng)過燈泡VR4 R19對C23充電,由
    的頭像 發(fā)表于 07-15 15:26 ?1.5w次閱讀
    雙向可控硅工作原理<b class='flag-5'>圖解</b>