用戶:Xyy23330121/Python/科學計算/numpy數學函數

本頁面用於給出 numpy 中數學函數的列表以及具體使用。

以下列表均省略了 numpy 前綴,比如下面的 sin() 函數,在實際使用時,需要加上前綴,比如:

import numpy as np

x = np.array([1,2,3])
print(np.sin(x))

三角函數

編輯
numpy 三角函數
函數 說明
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 以外,都必須使用關鍵詞方式傳入。

該參數默認為 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 中

該參數默認為 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) 來確認兩個類型在對應規則下是否可以轉換。

決定輸出時使用的數字類型。

默認為 True

  • 若此項為 True,如果輸入為數組的子類型(比如 np.matrix 等),則輸出也為對應的子類型。
  • 若此項為 False,則無論輸入是什麼,輸出總是數組。

默認為 "K"

數組元素求和

編輯

numpy.sum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)

對數組 a 中,參數 axis 所給出的維度進行求和。

  • axis=None(默認),會對所有維度進行求和,並返回一個數字。
  • axis 為整數,則會對第 axis 個維度進行求和,並按情況返回數字或數組。
  • axis 為整數組成的元組,則會對元組中每個維度進行求和,並按情況返回數字或數組。

該函數的結果等同於 a.sum(axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)

x = np.array([[1,2],[3,4]])
print(x.sum())               #输出:10
print(x.sum(axis = 0))       #输出:[4 6]
print(x.sum(axis = 1))       #输出:[3 7]
print(x.sum(axis = (0, 1)))  #输出:10

https://numpy.org/doc/stable/reference/routines.math.html

https://numpy.org/doc/stable/reference/routines.emath.html