使用者:Xyy23330121/Python/科學計算/numpy數學函數
本頁面用於給出 numpy 中數學函數的列表以及具體使用。
以下列表均省略了 numpy 前綴,比如下面的 sin() 函數,在實際使用時,需要加上前綴,比如:
import numpy as np
x = np.array([1,2,3])
print(np.sin(x))
三角函數
編輯函數 | 說明 |
---|---|
sin(x, /[, out, where, casting, order, ...]) | 正弦 |
cos(x, /[, out, where, casting, order, ...]) | 餘弦 |
tan(x, /[, out, where, casting, order, ...]) | 正切 |
arcsin(x, /[, out, where, casting, order, ...]) | 反正弦,結果取值範圍[-pi/2, pi/2] |
asin(x, /[, out, where, casting, order, ...]) | 反正弦,同上 |
arccos(x, /[, out, where, casting, order, ...]) | 反餘弦,結果取值範圍[0, pi] |
acos(x, /[, out, where, casting, order, ...]) | 反餘弦,同上 |
arctan(x, /[, out, where, casting, order, ...]) | 反正切,結果取值範圍[-pi/2, pi/2] |
atan(x, /[, out, where, casting, order, ...]) | 反正切,同上 |
hypot(x1, x2, /[, out, where, casting, ...]) | 給定直角邊邊長,求斜邊長 等同於sqrt(x1**2+x2**2) |
arctan2(x1, x2, /[, out, where, casting, ...]) | 求向量(x2,x1)的傾斜角,結果取值範圍[-pi, pi] |
atan2(x1, x2, /[, out, where, casting, ...]) | 求傾斜角,同上 |
degrees(x, /[, out, where, casting, order, ...]) | 將弧度數轉換成對應的角度數 |
rad2deg(x, /[, out, where, casting, order, ...]) | 將弧度數轉換成對應的角度數,同上 |
radians(x, /[, out, where, casting, order, ...]) | 將角度數轉換成對應的弧度數 |
deg2rad(x, /[, out, where, casting, order, ...]) | 將角度數轉換成對應的弧度數,同上 |
unwrap(p[, discont, axis, period]) | 平緩周期性函數自變量的數值 |
列表列舉了 numpy 的三角函數。
unwrap(p, discont=None, axis=-1, *, period=6.283185307179586])
編輯對 p 中的元素進行運算,返回元素加減幾個周期後的結果。
具體來講,當 p 中後一項和前一項的差的絕對值大於 max(discont, period/2) 時,就會轉換後一項。將後一項轉換為在距離前一項 max(discont, period/2) 範圍內的數字。
通用可選參數
編輯本章介紹大多數 numpy 中三角函數具有的可選參數。這些參數除 out 以外,都必須使用關鍵詞方式傳入。
out
編輯該參數默認為 None,該參數可以輸入一個數組。
- 如果該參數為 None,函數的返回值會存儲在新創建的數組裡面,並返回新創建的數組。
- 如果該參數輸入了數組,則要求數組的形狀與返回值的形狀相同,計算的結果會存儲在輸入的數組中。
x = np.array([1,4],dtype=float)
y = np.array([0,0],dtype=float)
print(np.sqrt(x, out=y)) #输出:[1. 2.]
print(x) #输出:[1. 4.]
print(y) #输出:[1. 2.],np.sqrt 函数将运算结果存储在了 y 中
where
編輯該參數默認為 True,該參數可以輸入一個存儲了布爾值的數組。
- 如果該參數輸入了數組,則要求數組的形狀與返回值的形狀相同。在計算時,僅對 where 中對應位置為 True 的進行計算,並輸出計算結果。而對應位置為 False 的元素會不經計算直接輸出。
- 如果該參數為 True,則所有元素都會被用於計算,並輸出。
x = np.array([1, 4, 9],dtype=float)
y = np.array([True, False, True])
print(np.sqrt(x, where=y)) #输出:[1. 4. 3.]
#只有对应位置为 True 的 1 和 9 参与了平方根运算,而对应位置为 False 的 4 被直接输出了。
casting
編輯該參數默認為 "same_kind"
。
該參數決定是否在計算時、自動轉換數組中元素的類型。以下是所有選項:
"no"
不進行自動轉換。"equiv"
只翻轉比特順序。"safe"
只對數字進行轉換。比如 int 轉換為 float 或 complex,以及 float 轉換為 complex。"same_kind"
只可以將類型轉換為不同精度的同種類型。比如 int64 轉換為 int32。"unsafe"
只要可能進行轉換,就會進行轉換。比如把 int32 轉換為 str 或者把 int64 轉換為 int32。轉換過程中可能報錯。
讀者可以通過 can_cast(from_, to, casting) 來確認兩個類型在對應規則下是否可以轉換。
dtype
編輯決定輸出時使用的數字類型。
subok
編輯默認為 True。
- 若此項為 True,如果輸入為數組的子類型(比如 np.matrix 等),則輸出也為對應的子類型。
- 若此項為 False,則無論輸入是什麼,輸出總是數組。
order
編輯默認為 "K"。