
- NumPy 教程
- NumPy - 首頁
- NumPy - 簡介
- NumPy - 環境配置
- NumPy 陣列
- NumPy - Ndarray 物件
- NumPy - 資料型別
- NumPy 陣列的建立和操作
- NumPy - 陣列建立例程
- NumPy - 陣列操作
- NumPy - 從現有資料建立陣列
- NumPy - 從數值範圍建立陣列
- NumPy - 陣列迭代
- NumPy - 陣列重塑
- NumPy - 陣列拼接
- NumPy - 陣列堆疊
- NumPy - 陣列分割
- NumPy - 陣列扁平化
- NumPy - 陣列轉置
- NumPy 索引和切片
- NumPy - 索引與切片
- NumPy - 高階索引
- NumPy 陣列屬性和操作
- NumPy - 陣列屬性
- NumPy - 陣列形狀
- NumPy - 陣列大小
- NumPy - 陣列步幅
- NumPy - 陣列元素大小
- NumPy - 廣播
- NumPy - 算術運算
- NumPy - 陣列加法
- NumPy - 陣列減法
- NumPy - 陣列乘法
- NumPy - 陣列除法
- NumPy 高階陣列運算
- NumPy - 交換陣列軸
- NumPy - 位元組交換
- NumPy - 複製與檢視
- NumPy - 元素級陣列比較
- NumPy - 陣列過濾
- NumPy - 陣列連線
- NumPy - 排序、搜尋和計數函式
- NumPy - 陣列搜尋
- NumPy - 陣列的並集
- NumPy - 查詢唯一行
- NumPy - 建立日期時間陣列
- NumPy - 二元運算子
- NumPy - 字串函式
- NumPy - 數學函式
- NumPy - 統計函式
- NumPy - 矩陣庫
- NumPy - 線性代數
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 繪製直方圖
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高階操作
- NumPy - 陣列排序
- NumPy - 沿軸排序
- NumPy - 使用花式索引排序
- NumPy - 結構化陣列
- NumPy - 建立結構化陣列
- NumPy - 操作結構化陣列
- NumPy - 欄位訪問
- NumPy - 記錄陣列
- Numpy - 載入陣列
- Numpy - 儲存陣列
- NumPy - 向陣列追加值
- NumPy - 交換陣列列
- NumPy - 向陣列插入軸
- NumPy 處理缺失資料
- NumPy - 處理缺失資料
- NumPy - 識別缺失值
- NumPy - 刪除缺失資料
- NumPy - 缺失資料插補
- NumPy 效能最佳化
- NumPy - 使用陣列進行效能最佳化
- NumPy - 使用陣列進行向量化
- NumPy - 陣列的記憶體佈局
- Numpy 線性代數
- NumPy - 線性代數
- NumPy - 矩陣庫
- NumPy - 矩陣加法
- NumPy - 矩陣減法
- NumPy - 矩陣乘法
- NumPy - 元素級矩陣運算
- NumPy - 點積
- NumPy - 矩陣求逆
- NumPy - 行列式計算
- NumPy - 特徵值
- NumPy - 特徵向量
- NumPy - 奇異值分解
- NumPy - 求解線性方程組
- NumPy - 矩陣範數
- NumPy 元素級矩陣運算
- NumPy - 求和
- NumPy - 求平均值
- NumPy - 求中位數
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合運算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 並集
- NumPy - 差集
- NumPy 有用資源
- NumPy 編譯器
- NumPy - 快速指南
- NumPy - 有用資源
- NumPy - 討論
NumPy - 算術運算
NumPy 算術運算
NumPy 使得對陣列執行算術運算變得簡單易行。使用 NumPy,您可以對整個陣列執行逐元素的加、減、乘、除運算,這意味著一個數組中的每個元素都由另一個數組中的對應元素進行運算。
當對不同形狀的陣列執行算術運算時,NumPy 使用稱為廣播的功能。它會自動調整陣列的形狀,以便可以執行運算,根據需要將較小的陣列擴充套件到較大的陣列。
基本的 NumPy 算術運算
NumPy 提供了幾種在陣列上逐元素執行的算術運算。這些包括加法、減法、乘法、除法和乘方。
NumPy 陣列加法
NumPy 中的加法是逐元素進行的。當新增兩個相同形狀的陣列時,會將對應的元素相加。當陣列形狀不同時,將應用廣播規則。
import numpy as np # Creating two arrays a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # Adding arrays result = a + b print(result)
以下是獲得的輸出:
[5 7 9]
NumPy 陣列減法
NumPy 中的減法也是逐元素進行的。減去兩個相同形狀的陣列將返回一個數組,其中每個元素都是輸入陣列中對應元素的差。
import numpy as np # Creating two arrays a = np.array([10, 20, 30]) b = np.array([1, 2, 3]) # Subtracting arrays result = a - b print(result)
這將產生以下結果:
[ 9 18 27]
NumPy 陣列乘法
逐元素乘法使用 NumPy 中的 * 運算子執行。當乘以陣列時,第一個陣列的每個元素都乘以第二個陣列中的對應元素。
import numpy as np # Creating two arrays a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # Multiplying arrays result = a * b print(result)
以下是上述程式碼的輸出:
[ 4 10 18]
NumPy 陣列除法
使用 NumPy 中的 / 運算子執行逐元素除法。它返回一個數組,其中每個元素都是輸入陣列中對應元素的商。
import numpy as np # Creating two arrays a = np.array([10, 20, 30]) b = np.array([1, 2, 5]) # Dividing arrays result = a / b print(result)
獲得的輸出如下所示:
[10. 10. 6.]
NumPy 陣列乘方運算
使用 NumPy 中的 ** 運算子逐元素執行乘方運算。基陣列的每個元素都將提升到指數陣列中對應元素的冪。
import numpy as np # Creating two arrays a = np.array([2, 3, 4]) b = np.array([1, 2, 3]) # Applying power operation result = a ** b print(result)
執行上述程式碼後,我們將獲得以下輸出:
[ 2 9 64]
我們還可以使用 numpy.power() 函式將陣列的元素提升到指定的冪。此函式將第一個輸入陣列中的元素視為基數,並返回其提升到第二個輸入陣列中對應元素的冪的結果。
import numpy as np a = np.array([10,100,1000]) print ('Our array is:') print (a) print ('\n') print ('Applying power function:') print (np.power(a,2)) print ('\n') print ('Second array:') b = np.array([1,2,3]) print (b) print ('\n') print ('Applying power function again:') print (np.power(a,b))
它將產生以下輸出:
Our array is: [ 10 100 1000] Applying power function: [ 100 10000 1000000] Second array: [1 2 3] Applying power function again: [ 10 10000 1000000000]
高階 NumPy 算術運算
NumPy 中的高階算術運算包括模運算、地板除法和乘方運算。這些運算處理更復雜的數學任務,並且與基本算術運算類似,都是逐元素執行的,但具有用於模算術和冪運算的附加功能。
NumPy 模運算
使用 NumPy 中的 % 運算子執行模運算。當應用於陣列時,它會逐元素操作,這意味著第一個陣列的每個元素都除以第二個陣列中的對應元素,並計算餘數。
import numpy as np # Creating two arrays a = np.array([10, 20, 30]) b = np.array([3, 7, 8]) # Applying modulo operation result = a % b print(result)
產生的結果如下:
[1 6 6]
我們還可以使用 numpy.mod() 函式計算兩個陣列之間或陣列與標量之間的逐元素除法餘數(模運算)。
此函式返回一個數組除以另一個數組或標量時的餘數,對每個元素應用模運算。
import numpy as np a = np.array([10,20,30]) b = np.array([3,5,7]) print ('First array:') print (a) print ('\n') print ('Second array:') print (b) print ('\n') print ('Applying mod() function:') print (np.mod(a,b)) print ('\n') print ('Applying remainder() function:') print (np.remainder(a,b))
以下是上述程式碼的輸出:
First array: [10 20 30] Second array: [3 5 7] Applying mod() function: [1 0 2] Applying remainder() function: [1 0 2]
NumPy 地板除法
NumPy 中的地板除法使用 // 運算子逐元素執行。它返回小於或等於除法結果的最大整數。
import numpy as np # Creating two arrays a = np.array([10, 20, 30]) b = np.array([3, 7, 8]) # Applying floor division result = a // b print(result)
我們得到如下所示的輸出:
[3 2 3]
NumPy 具有廣播功能的算術運算
廣播允許 NumPy 透過虛擬擴充套件較小的陣列以匹配較大陣列的形狀來對不同形狀的陣列執行算術運算。
NumPy 中的標量和陣列運算
當標量與陣列一起使用時,廣播會擴充套件標量以匹配陣列的形狀,從而允許逐元素運算。
import numpy as np # Creating an array a = np.array([[1, 2, 3], [4, 5, 6]]) # Scalar value scalar = 10 # Adding scalar to array result = a + scalar print(result)
以下是獲得的輸出:
[[11 12 13] [14 15 16]]
NumPy 中不同形狀的陣列
當 NumPy 中使用兩個不同形狀的陣列時,廣播會根據廣播規則對齊它們的形狀。
import numpy as np # Creating arrays with different shapes a = np.array([[1, 2, 3], [4, 5, 6]]) b = np.array([10, 20, 30]) # Adding arrays result = a + b print(result)
這將產生以下結果:
[[11 22 33] [14 25 36]]
NumPy 聚合函式
NumPy 中的聚合函式執行陣列上的求和、平均值、最小值和最大值等運算,通常使用廣播來處理不同形狀的陣列。
NumPy 求和運算
NumPy 求和運算計算指定軸上或整個陣列上(如果未指定軸)的陣列元素之和。
import numpy as np # Creating an array a = np.array([[1, 2, 3], [4, 5, 6]]) # Summing elements result = np.sum(a) print(result) # Summing along axis 0 (columns) result_axis0 = np.sum(a, axis=0) print(result_axis0) # Summing along axis 1 (rows) result_axis1 = np.sum(a, axis=1) print(result_axis1)
以下是上述程式碼的輸出:
21 [5 7 9] [ 6 15]
NumPy 平均值運算
NumPy 平均值運算計算指定軸上或整個陣列上的陣列元素的平均值(算術平均值)。
import numpy as np # Creating an array a = np.array([[1, 2, 3], [4, 5, 6]]) # Mean of elements result = np.mean(a) print(result) # Mean along axis 0 (columns) result_axis0 = np.mean(a, axis=0) print(result_axis0) # Mean along axis 1 (rows) result_axis1 = np.mean(a, axis=1) print(result_axis1)
獲得的輸出如下所示:
3.5 [2.5 3.5 4.5] [2. 5.]
NumPy 陣列與複數的運算
以下函式用於對包含複數的陣列執行運算。
numpy.real(): 返回複數型別引數的實部。
numpy.imag(): 返回複數型別引數的虛部。
numpy.conj(): 返回複共軛,透過改變虛部的符號獲得。
numpy.angle(): 返回複數引數的角度。該函式具有度數引數。如果為真,則返回以度為單位的角度,否則角度以弧度為單位。
示例
在下面的示例中,我們使用 NumPy 函式:real()、imag()、conj() 和 angle() 對包含複數的陣列執行運算。
import numpy as np a = np.array([-5.6j, 0.2j, 11. , 1+1j]) print ('Our array is:') print (a) print ('\n') print ('Applying real() function:') print (np.real(a)) print ('\n') print ('Applying imag() function:') print (np.imag(a)) print ('\n') print ('Applying conj() function:') print (np.conj(a)) print ('\n') print ('Applying angle() function:') print (np.angle(a)) print ('\n') print ('Applying angle() function again (result in degrees)') print (np.angle(a, deg = True))
它將產生以下輸出:
Our array is: [ 0.-5.6j 0.+0.2j 11.+0.j 1.+1.j ] Applying real() function: [ 0. 0. 11. 1.] Applying imag() function: [-5.6 0.2 0. 1. ] Applying conj() function: [ 0.+5.6j 0.-0.2j 11.-0.j 1.-1.j ] Applying angle() function: [-1.57079633 1.57079633 0. 0.78539816] Applying angle() function again (result in degrees) [-90. 90. 0. 45.]