Python 教學:什麼是 NumPy 以及如何在 Python 中使用 NumPy 庫
Python 是一種高階語言,它的強大和流行歸功於函式庫。
NumPy 就是其中之一,也許是能夠表達語言最大多功能性的一種。
這個NumPy教學講解了NumPy的基礎知識,例如它的架構和環境,讓我們一起看看。
預計閱讀時間: 13 minuti
數字貨幣,這代表 數字的 蟒蛇,這是一家書店 蟒蛇 由多維和一維元素組成的開源。它是將數值資料計算為的標準 蟒蛇. 數字貨幣 它在幾乎所有需要數值計算的領域中應用最為廣泛,例如科學和工程;因此,API 功能 數字貨幣 它們在數據科學和軟體包中被廣泛使用 蟒蛇 科學工具,包括 Pandas、SciPy、Matplotlib、scikit-learn、scikit-image 等。
本 NumPy 教程介紹了 NumPy 的基礎知識,例如其架構和環境。所有這些都通過示例進行解釋,以便更好地理解。
為什麼要使用 NumPy
數字貨幣 是數值計算的基本包 蟒蛇。它提供了計算數據的數學函數和有效操作多維數組和矩陣的函數。以下是一些原因 數字貨幣 很關鍵:
- 數字貨幣 包括用於基本算術、線性代數、傅立葉分析等的廣泛數學函數。
- 數字貨幣 有效地對大型資料集進行數值運算。
- 數字貨幣 支援多維數組,允許在模型中表示影像、聲波、張量等複雜資料結構 機器學習的.
- 支援為複雜的數學計算編寫簡潔、可讀的程式碼。
- 數字貨幣 與其他庫整合進行科學計算;它們是 SciPy(用於科學計算)、Pandas(用於資料操作和分析)和 scikit-learn(用於機器學習)。
- 許多科學和數值計算庫和工具都建立在 數字貨幣.
- 它的廣泛採用和穩定性使其成為數值計算任務的標準選擇。
總而言之, 數字貨幣 在生態系統中發揮至關重要的作用 蟒蛇 用於科學計算、數據分析、自動學習 等等。其高效的數組運算和廣泛的數學函數使其成為處理數字資料不可或缺的工具。 蟒蛇.
NumPy 應用程式
L“NumPy API 中 蟒蛇 它主要用於數字計算。它為各種數學函數提供支持,以有效地對數據進行操作。以下是 NumPy 廣泛使用的一些常見應用領域:
- 數據分析: NumPy 提供快速有效的陣列操作,使其適合資料清理、過濾和轉換等任務。它主要用於科學數據分析和管理,特別是在處理大型、廣泛的數據集時。
- 機器學習(機器學習)和 人工智能: 不同的框架 機器學習 e 深入學習 in 蟒蛇,如 TensorFlow e 火炬,依靠 NumPy 數組來管理輸入資料、模型參數和輸出。
- 科學計算: NumPy 廣泛應用於物理、化學、生物學和天文學等科學計算應用中,用於資料操作、數值模擬和分析。 NumPy 通常用於數值模擬和計算建模,以解決微分方程、最佳化問題和其他數學問題。
- 數組操作: NumPy 提供了各種操作陣列的方法,例如調整大小、切片、索引、堆疊、分割和陣列串聯。這些技術對於各種科學計算工作中的資料準備和操作至關重要。
- 財經: NumP API 也廣泛應用於金融資料分析和經濟學中,以執行投資組合最佳化、風險分析、時間序列分析和統計建模。
- 工程和機器人: NumPy 用於機械、土木和電氣工程等工程學科,用於執行有限元素分析、控制系統設計和機器人模擬等任務。
- 影像和訊號處理: NumPy 廣泛應用於影像與訊號處理與分析。
- 數據視覺化: NumPy不提供資料視覺化,但支援庫 Matplotlib e 海生 從數值資料產生圖表和視覺化。
總的來說,NumPy 的多功能性和效率使其成為一攬子交易 蟒蛇 在科學計算、數據分析等廣泛的應用領域中至關重要。
例子
下面是一個例子 蟒蛇 數字貨幣:
# Importing NumPy Array
import numpy as np
# Creating an array using np.array() method
arr = np.array([10, 20, 30, 40, 50])
# Printing
print(arr) # Prints [10 20 30 40 50]
NumPy 程式碼庫
的原始碼 數字貨幣 可以在這個 github 儲存庫中找到: https://github.com/numpy/numpy
NumPy 文檔
NumPy 文件、參考手冊和使用者指南可在以下連結中找到:
使用 NumPy 進行操作
使用 NumPy,開發人員可以執行以下操作
- 數組的數學和邏輯運算。
- 傅立葉變換和操作形狀的程式。
- 與線性代數相關的運算。 NumPy 具有用於線性代數和隨機數產生的內建函數。
像MatLab一樣
NumPy 通常與以下軟體包一起使用 科學 (科學 蟒蛇)和 Mat 繪圖庫。這種組合被廣泛用作 MatLab(一種流行的技術計算平台)的替代品。然而,替代方案 蟒蛇 MatLab 現在被視為一種更現代、更完整的程式語言。
它是開源的,這是 NumPy 的另一個優勢。
NumPy 分佈
標準分佈 蟒蛇 不附 NumPy 模組。一個輕量級的替代方案是使用流行的軟體包安裝程式來安裝 NumPy 蟒蛇, 點子.
pip 安裝 numpy
啟用 NumPy 的最佳方法是使用特定於您的作業系統的可安裝二進位套件。這些二進位檔案包含完整的 SciPy 堆疊(包括 NumPy、SciPy、matplotlib、IPython、SymPy 和鼻子包以及核心套件) 蟒蛇).
NdArray 對象
NumPy 中定義的最重要的物件是一種稱為 N 維數組的類型 數組。描述相同類型的物件的集合。使用從零開始的索引來存取集合項目。
ndarray 中的每個元素在記憶體中具有相同的區塊大小。 ndarray 中的每個元素都是資料物件類型的物件(稱為 數據類型).
從 ndarray 物件(透過切片)提取的任何元素都由一個物件表示 蟒蛇 標量數組類型之一。下圖顯示了ndarray、物件資料類型(dtype)和標量數組類型之間的關係
ndarray 類別實例可以透過本教程後面描述的幾個陣列來建立例程來建構。基本 ndarray 是使用 NumPy 中的陣列函數建立的,如下所示。
numpy.數組
從公開數組介面的任何物件或傳回數組的任何方法建立 ndarray。
numpy.array(對象,dtype = None,copy = True,order = None,subok = False,ndmin = 0)
上面的建構函式採用以下參數?
老年人 | 參數及說明 |
---|---|
1 | 對象 公開數組介面方法的任何物件都會傳回數組或任何序列(nidava)。 |
2 | 方式 所需資料數組的類型,可選 |
第三 | 副本的副本 選修的。預設(true),物件被複製 |
4 | 訂單順序 C(較高等級)或 F(較高列)或 A(任意)(預設) |
5 | 蘇博克 預設情況下,傳回的陣列被強制為基底類別數組。如果這是真的,子類別就通過了 |
6 | 分鐘 指定結果數組的最小大小 |
請看以下範例以更好地理解。
例子1
import numpy as np
a = np.array([1,2,3])
print a
這三行依序表示:
- 導入 numpy 函式庫並定義 np 別名
- 包含三個元素的一維數組定義:一、二和三
- 在螢幕上列印數組
輸出如下
[1,2,3]
例子2
# more than one dimensions
import numpy as np
a = np.array([[1, 2], [3, 4]])
print a
這三行依序表示:
- 導入 numpy 函式庫並定義 np 別名
- 包含四個元素的二維陣列定義元素分為兩行:第一行有一個、兩個,第二行有三個、四個
- 在螢幕上列印數組
輸出如下
[[1 2 3 4]]
例子3
# minimum dimensions
import numpy as np
a = np.array([1, 2, 3, 4, 5], ndmin = 2)
print a
這三行依序表示:
- 導入 numpy 函式庫並定義 np 別名
- 單行包含五個元素的二維數組定義,透過 ndmin 參數指定多維性
- 在螢幕上列印數組
輸出如下
[[1,2,3,4,5]]
例子4
# dtype 參數 import numpy as np a = np.array([1, 2, 3], dtype = complex) print a
輸出如下?
[ 1.+0.j, 2.+0.j, 3.+0.j]
該項目 數組 由電腦記憶體的連續一維段與將每個元素對應到記憶體區塊中的位置的索引方案結合。記憶體區塊包含主序(C 風格)或列主序(FORTRAN 或 MatLab 風格)的元素。
資料類型
NumPy 支援的數字類型比 蟒蛇。下表顯示了 NumPy 中定義的不同標量資料類型。
老年人 | 資料類型和描述 |
---|---|
1 | 布林值 布林值(True 或 False)儲存為位元組 |
2 | INT 預設整數類型(與 long C 相同;通常為 int64 或 int32) |
第三 | - 一世 與 C int 相同(通常為 int32 或 int64) |
4 | 內部 用於索引的完成(與 C ssize-t 相同;通常為 int32 或 int64) |
5 | intxnumx 位元組(128 至 127) |
6 | – 1 卡羅斯16 整數(-32768 至 32767) |
7 | – int 的第 32 個 整數(-2147483648-21474847) |
8 | – int64 整數(-92233720368545708 到 9223372036854775807) |
9 | 整數8 無符號整數(0 到 255) |
10 | 整數16 無符號整數(0 到 65535) |
11 | 整數32 無符號整數(0 到 4294967295) |
12 | 整數64 無符號整數(0 到 1844674407370915) |
13年 | 浮標 浮動扶手64 |
14 | 浮法 16 精準度半浮點:位符號、5位指數、10位尾數 |
15年 | 浮標 32 單精準度滑車:符號、8位指數、23位尾數 |
16年 | 64 的浮點數 雙精度運輸:符號、11 位元指數、52 位元尾數 |
17年 | 複雜的一個 Complex128 的短片 |
18 | 64 複合體 複數,由兩個 32 位元浮點數(實部和虛部)表示 |
19年 | 128 複合體 複數,由兩個 64 位元浮點數(實部和虛部)表示 |
NumPy 數字類型是 dtype(資料類型)物件的實例,每個物件都有獨特的特徵。資料型別可用作 np.bool、np.float32 等。
資料類型物件(dtype)
資料類型物件描述了數組對應的固定記憶體區塊的解釋,取決於以下幾個方面
- 資料型態(整數物件、浮點數或 蟒蛇)
- 數據大小
- 順序點(小端或大端)
- 對於結構化類型,欄位的名稱、每個欄位的資料類型以及從每個欄位取得的部分記憶體區塊。
- 如果資料類型是子數組,則其形狀和資料類型
字節順序由資料類型前綴“或”決定。 「」表示編碼為低端(低位元儲存在最小位址中)。 「」表示編碼為大端(最高有效位元組儲存在最小位址中)。
使用以下語法建構 dtype 對象
numpy.dtype(對象,對齊,複製)
參數為:
- 對象 – 轉換為物件資料型別
- 對齊 – 如果為 true,則向欄位新增填充,使其看起來像 C 結構
- COPIA – 製作 dtype 物件的新副本。如果為 false,則結果是對嵌入資料類型的物件的引用
例子1
# 使用陣列標量類型 import numpy as np dt = np.dtype(np.int32) print dt
輸出如下:
intxnumx
例子2
#int8、int16、int32、int64 可以替換為等效字串 'i1'、'i2'、'i4' 等。導入 numpy as np dt = np.dtype('i4') 印出 dt
輸出如下:
intxnumx
例子 3
# 檔案名稱可用來存取age列的內容 import numpy as np dt = np.dtype([('age',np.int8)]) a = np.array([(10,),(20,) ,( 30,)], dtype = dt) 印出['年齡']
輸出如下:
[10 20]
例子 4
import numpy as np Student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')]) a = np.array([( 'abc', 21, 50),('xyz', 18, 75)], dtype = 學生) 印
輸出如下:
[('abc', 21, 50.0), ('xyz', 18, 75.0)]
每個嵌入資料類型都有一個唯一標識它的字元代碼。
- 'b' ?布林值
- '一世' ? (簽名)全部
- 'U' ?未完整簽署
- 'F' ?以浮點數表示
- 'C' ?複數浮點
- 'M' – 時間增量
- 'M' ?約會時間
- 'O' ? (蟒蛇) 對象
- 'S','一個' ? (位元組-)字串
- '你' ?統一碼
- 'V' ?原始資料(您)
數組屬性
ndarray.形狀
此數組屬性傳回一個由數組維度組成的元組。它也可以用於調整陣列的大小。
例子1
import numpy as np a = np.array([[1,2,3],[4,5,6]]) print a.shape
輸出如下:
(2,3)
例子2
# 這會調整 ndarray 的大小 import numpy as np a = np.array([[1,2,3],[4,5,6]]) a.shape = (3,2) print a
輸出如下:
[[1 2 3 4 5 6]]
ndarray.ndim
此數組屬性傳回數組的維數。
例子1
# 均勻分佈的數字數組 import numpy as np a = np.arange(24) print a
輸出如下:
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
例子2
# 這是一維數組 import numpy as np a = np.arange(24) a.ndim # 現在重塑它 b = a.reshape(2,4,3) print b # b 有三個維度
輸出如下:
[[[ 0, 1, 2] [ 3, 4, 5] [ 6, 7, 8] [ 9, 10, 11]] [[12, 13, 14] [15, 16, 17] [18, 19 , 20] [21, 22, 23]]]
numpy.項目大小
此數組屬性傳回每個數組元素的長度(以位元組為單位)。
例子1
# 陣列的資料型別為 int8(1 個位元組) import numpy as np x = np.array([1,2,3,4,5], dtype = np.int8) print x.itemsize
輸出如下:
1
例子2
# 陣列的資料型別現在為 float32 (4 位元組) import numpy as np x = np.array([1,2,3,4,5], dtype = np.float32) print x.itemsize
輸出如下:
4
陣列創建水龍頭
numpy.empty
建立指定形狀和資料類型的未初始化數組。使用以下構造函數
numpy.empty(形狀, dtype = float, order = 'C')
構造函數具有以下參數。
老年人 | 參數及說明 |
---|---|
1 | 形式 空數組 int 或 int 元組的形式 |
2 | 什麼樣的人 所需的輸出資料類型。可選選項 |
第三 | 訂購順序 'C' 表示 C 樣式序列檔案數組,'F' 表示 FORTRAN 樣式列優先數組 |
例子
以下程式碼顯示了空數組的範例。
將 numpy 導入為 np x = np.empty([3,2], dtype = int) 印出 x
輸出如下:
[[22649312 1701344351] [1818321759 1885959276] [16779776 156368896]]
注意: 數組中的元素顯示隨機值,因為它們未初始化。
numpy.zeros
傳回指定大小的新範圍,並用零填滿。
numpy.zeros(形狀, dtype = float, order = 'C')
建構函數採用以下參數。
老年人 | 參數及說明 |
---|---|
1 | 形式 空數組 int 或 int 序列的形式 |
2 | 什麼樣的人 所需的輸出資料類型。可選選項 |
第三 | 訂購順序 'C' 表示 C 樣式序列檔案數組,'F' 表示 FORTRAN 樣式列優先數組 |
例子1
# 五個零的陣列。預設資料類型為 float import numpy as np x = np.zeros(5) print x
輸出如下:
[ 0.]
例子 2
# 自訂類型 import numpy as np x = np.zeros((2,2), dtype = [('x', 'i4'), ('y', 'i4')]) print x
它應該產生以下輸出
[[(0,0)(0,0)] [(0,0)(0,0)]]
numpy.ones
傳回指定大小和類型的新範圍,並填入這些內容。
numpy.ones(形狀, dtype = None, order = 'C')
建構函數採用以下參數。
老年人 | 參數及說明 |
---|---|
1 | 形式 空數組 int 或 int 元組的形式 |
2 | 什麼樣的人 所需的輸出資料類型。可選選項 |
第三 | 訂購順序 'C' 表示 C 樣式序列檔案數組,'F' 表示 FORTRAN 樣式列優先數組 |
例子1
# 五個一的陣列。預設資料型別為 float import numpy as np x = np.ones(5) print x
輸出如下:
[ 1.]
例子2
將 numpy 導入為 np x = np.ones([2,2], dtype = int) 印出 x
現在,輸出如下:
[[1 1] [1 1]]
相關閱讀
- 機器學習:隨機森林與決策樹的比較
- 人工智慧 (AI) 的工作原理及其應用
- Python 將革新資料分析師在 Excel 中的工作方式
- Python 機器學習示例:多元線性回歸
- Python 和高級方法,用於更好編程的 dunder 函數
- 驚人但鮮為人知的 Python 庫
Ercole Palmeri