Python 與 NumPy 教程:NumPy 數(shù)組簡介
介紹
最近,我們的 Python 團隊參加了一個研討會,技術(shù)愛好者們討論了 Python 以及用于數(shù)據(jù)分析、機器學(xué)習(xí)和數(shù)據(jù)科學(xué)的一流 Python 庫。NumPy 是討論最多的 Python 庫之一。它用于處理復(fù)雜的數(shù)學(xué)運算、數(shù)據(jù)分析和機器學(xué)習(xí)。研討會涵蓋了NumPy在python編程等各個領(lǐng)域的應(yīng)用。
在今天的 Python 與 NumPy 教程中,我們將了解 NumPy 并查看它所促進的方法的一些實際應(yīng)用。你們中的一些人可能不熟悉 NumPy 以及如何使用它。我們是來幫你的??赐晡覀兊慕坛?,你的疑惑就會迎刃而解。
什么是 NumPy?
NumPy是一個開源的 Python 項目,用于在 Python 中實現(xiàn)復(fù)雜的數(shù)值計算。它創(chuàng)建于 2005 年,包括用于處理屬于矩陣、傅立葉變換和線性代數(shù)等領(lǐng)域的任務(wù)的函數(shù)。
NumPy 簡單地意味著 Numerical Python。作為一個開源項目,NumPy 庫的全部源代碼都可以在github上找到。
為什么要使用 NumPy?
Python 由服務(wù)于數(shù)組目的的列表組成。但是,列表的處理速度較慢。NumPy 專注于提供比默認(rèn) Python 列表快近 50 倍的數(shù)組對象。NumPy 提供了一個名為數(shù)組. NumPy 提供的支持函數(shù)使得使用 ndarray 優(yōu)于傳統(tǒng)的 Python 列表。由于對速度和資源要求的重要性,數(shù)組不斷地用于數(shù)據(jù)科學(xué)和機器學(xué)習(xí)等領(lǐng)域。
NumPy 的優(yōu)點
與傳統(tǒng)的 Python 列表相比,使用 NumPy 和數(shù)組的主要好處是:
更快的速度:在后臺,NumPy 使用用基本 C 語言編寫的算法,使它們的執(zhí)行在納秒而不是秒內(nèi)完成。
減少對循環(huán)的依賴: NumPy 有助于改變對循環(huán)的依賴,防止程序員在迭代索引的嵌套中陷入混亂。
更好的質(zhì)量:作為一個開源項目,NumPy 有成千上萬的貢獻者致力于使 NumPy 無錯誤、更快、更友好。
更簡潔的代碼:在處理復(fù)雜的數(shù)學(xué)/數(shù)學(xué)或數(shù)值運算時,沒有循環(huán)的代碼看起來就像您要計算的方程式。
Python 與 NumPy:先決條件和技術(shù)棧
我們假設(shè)您事先了解以下內(nèi)容。
Python3編程
虛擬環(huán)境
康達(dá)/點
Google Colaboratory/Visual Studio 代碼編輯器
要開始使用本教程,請確保您具備以下條件。
Python
IDE(Google Colaboratory 或 Visual Studio Code)
我們將使用以下技術(shù)。
NumPy
Google Colaboratory/Visual Studio Code
讓我們開始探索 NumPy 的各種用例應(yīng)用程序。這是我的系統(tǒng)設(shè)置:
Ubuntu 20.04 操作系統(tǒng)
Python 3.8+
安裝 NumPy 使用點
使用 pip 安裝 numpy 包(建議在虛擬環(huán)境中這樣做以避免污染您的操作系統(tǒng))。
創(chuàng)建新目錄
創(chuàng)建一個新目錄并使用以下命令導(dǎo)航到它。
雖然上述步驟應(yīng)該是您開始使用 numPy 和 python 所需的全部步驟,但您可以選擇安裝更多的工具,以使使用數(shù)據(jù)科學(xué)庫對開發(fā)人員更加友好。這些工具可以是以下任何一種。
IPython
木星筆記本
VS代碼
谷歌實驗室
為了演示,我們將在 VS 代碼編輯器中使用 python 筆記本。
發(fā)現(xiàn)熟練的python開發(fā)人員,沒有開發(fā)后顧之憂!
提出您的要求,我們將幫助開發(fā)您的產(chǎn)品。Bacancy 經(jīng)驗豐富的開發(fā)人員適合您!立即聯(lián)系并聘請 Python 開發(fā)人員。
Python 與 NumPy: NumPy 入門
讓我們從使用 numPy 提供的基本數(shù)據(jù)類型開始,即numpy 數(shù)組。為此,讓我們從導(dǎo)入 numPy 包開始。
輸出:
現(xiàn)在,為了方便起見,numPy 通常以“np”作為別名導(dǎo)入。
*注意:別名是給任何事物的別名。
輸出:
基于應(yīng)用的 NumPy 數(shù)組介紹
使用 NumPy 教程在 Python 中進一步移動,讓我們使用 NumPy 數(shù)組開始我們的核心應(yīng)用程序。
創(chuàng)建 NumPy 數(shù)組
在數(shù)據(jù)科學(xué)和機器學(xué)習(xí)應(yīng)用程序中使用 numPy 的主要原因是需要高效地使用數(shù)組。Numpy 提供稱為“ndarray”的數(shù)組對象。
numpy 函數(shù)“array()”可用于創(chuàng)建數(shù)組。
將 numpy 導(dǎo)入為 npblank_array = np.array([])打?。瞻讛?shù)組)
my_array = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])打印(我的數(shù)組)打?。愋停瞻讛?shù)組))
輸出:
*注意:numpy 數(shù)組需要使用“array()”函數(shù)傳遞一個對象。如果函數(shù)沒有傳遞對象類型參數(shù),它會返回一個語法錯誤。
“array()”函數(shù)可以通過將任何類似數(shù)組的對象傳遞給它的參數(shù)(如列表、元組等)來使用。
數(shù)組中的維度
數(shù)組可以根據(jù)其維度進行分類。
0-D 數(shù)組
0-D 數(shù)組也可以稱為標(biāo)量。數(shù)組的每個元素本身就是一個 0 維數(shù)組。
1-D Arrays
1-D arrays 可以被認(rèn)為是一個由多個 0-D 數(shù)組作為元素組成的數(shù)組。一維數(shù)組也叫一維數(shù)組,是最基本、最常用的數(shù)組。
二維數(shù)組
二維數(shù)組是由一維數(shù)組作為其元素組成的數(shù)組,常用于表示矩陣。
3-D 數(shù)組
3-D 數(shù)組是以矩陣(2-D 數(shù)組)作為其元素的數(shù)組。
將 numpy 導(dǎo)入為 npzero_d_array = np.array(23)print("0-D 數(shù)組", zero_d_array)one_d_array = np.array([0, 1, 2, 3])print("一維數(shù)組", one_d_array)two_d_array = np.array([[0, 1, 2], [9, 8, 7]])print("二維數(shù)組",two_d_array)three_d_array = np.array([[[0, 1, 2], [9, 8, 7]], [[0, 1, 2], [9, 8, 7]]])print("三維數(shù)組",three_d_array)
輸出:
高維數(shù)組
Numpy 中的數(shù)組不限于只有三個維度。數(shù)組可以具有任意數(shù)量的維度,并且可以使用“ndmin”參數(shù)創(chuàng)建以定義數(shù)組中的參數(shù)數(shù)量。
將 numpy 導(dǎo)入為 npmy_array = np.array([0, 1, 2, 3, 4, 5, 6], ndmin=4)print('數(shù)組維數(shù):', my_array.ndim)打?。ㄎ业臄?shù)組)
輸出:
這里,通過“ndmin”參數(shù),可以看出它支持任意維數(shù)的數(shù)組。在上面的例子中,第 4 個維度,最里面的維度,有七個元素。
NumPy 中的數(shù)組索引
在 Python with NumPy Tutorial 中,下一節(jié)將介紹 NumPy 中的數(shù)組索引??梢允褂脭?shù)組索引訪問數(shù)組元素??梢允褂闷渌饕栐L問任何數(shù)組元素。此外,應(yīng)該記住,與任何其他數(shù)組一樣,numPy 數(shù)組的索引也從 0 開始。因此,第一個元素的索引始終為 0,第二個元素的索引為 1,依此類推。
可以使用數(shù)組索引訪問元素以用于各種目的,例如訪問元素、使用元素進行各種數(shù)學(xué)運算等。
將 numpy 導(dǎo)入為 np
one_d_array = np.array([9, 8, 7, 6])
print("第一個元素:",one_d_array[0])print("第二個元素:",one_d_array[1])print("前2個元素相加:",one_d_array[0] + one_d_array[1])
two_d_array = np.array([[8,7,6,5], [4,3,2,1]])print("第一行第三個元素:", two_d_array[0,2])print("第二行第四個元素:", two_d_array[1,3])
輸出:
訪問 3-D 數(shù)組或其他更高維數(shù)組中的元素
當(dāng)談到訪問 3-D 數(shù)組或其他更高維數(shù)組中的元素時,它變得有點復(fù)雜。在操作它們之前,應(yīng)該確保了解數(shù)組的結(jié)構(gòu)或維度。以 3-D 數(shù)組為例:
將 numpy 導(dǎo)入為 npthree_d_array = np.array([[[9, 8, 7], [0, 1, 2]], [[7, 8, 9], [5, 4, 3]]])打?。╰hree_d_array[1, 0, 2])
輸出:
讓我們試著理解這段代碼的最后一行。
這里,
three_d_array[1, 0, 2]正在打印值 9。
相同的原因是第一個數(shù)字表示包含兩個數(shù)組的第一個維度:
[[9, 8, 7], [0, 1, 2]] 和 [[7, 8, 9], [5, 4 , 3]]
由于我們選擇了索引 1,因此剩下第二個數(shù)組:
[[7, 8, 9], [5, 4, 3]]
第二個數(shù)字代表第二個維度,也包含兩個數(shù)組:
[7, 8, 9] 和 [5, 4, 3]
由于我們選擇了索引 0,因此我們在索引 0 處留下了第一個數(shù)組:
[7, 8, 9]
現(xiàn)在,第三個數(shù)字代表第三個維度,其中包含這三個值:
7、8 和 9
由于我們選擇了索引 2,因此我們得到最終值:
9
負(fù)索引
負(fù)索引也可用于從末尾訪問數(shù)組元素。
將 numpy 導(dǎo)入為 npmy_array = np.array([[1,2,3,4,5], [6,7,8,9,10]])print('二維的最后一個元素:', my_array[1, -2])
輸出:
在這里,可以看出輸出是元素 9。
原因是語句“my_array[1, -2]”使用第一個索引值設(shè)置為 1 訪問維度的第二個數(shù)組,即
[6, 7, 8, 9, 10]
然后,設(shè)置為 -2 的第二個索引值訪問倒數(shù)第二個索引處的元素。
9
結(jié)論
所以,我希望 Python 和 NumPy 教程對您有所幫助。如需更多此類探索 Python 的教程,請訪問Python 教程頁面并開始學(xué)習(xí)。如果您有任何疑問或建議,請隨時與我們聯(lián)系。
(言鼎科技)