本文向你們介紹 NumPy 常見的數學函數。html
三角函數是基本初等函數之一,是以角度(數學上最經常使用弧度制,下同)爲自變量,角度對應任意角終邊與單位圓交點座標或其比值爲因變量的函數。三角函數通常用於計算三角形中未知長度的邊和未知的角度,在導航、工程學以及物理學方面都有普遍的用途。python
常見的三角函數包括正弦函數、餘弦函數和正切函數。下面咱們來學習這三個常見的三角函數:數組
函數 | 描述 |
---|---|
sin() | 數組中角度的正弦值 |
cos() | 數組中角度的餘弦值 |
tan() | 數組中角度的正切值 |
arcsin() | 數組中角度的反正弦值 |
arccos() | 數組中角度的反餘弦值 |
arctan() | 數組中角度的反正切值 |
degrees() | 將弧度轉換成角度 |
咱們直接來看實例:ide
import numpy as np
a = np.array([0, 30, 45, 60, 90])
print(np.char.center('不一樣角度的正弦值', 30, '*'))# 經過乘 pi/180 轉化爲弧度sin = np.sin(a*np.pi/180)print(sin)print('\n')
print(np.char.center('不一樣角度的餘弦值', 30, '*'))# 經過乘 pi/180 轉化爲弧度cos = np.cos(a*np.pi/180)print(cos)print('\n')
print(np.char.center('不一樣角度的正切值', 30, '*'))# 經過乘 pi/180 轉化爲弧度tan = np.tan(a*np.pi/180)print(tan)print('\n')
print(np.char.center('不一樣角度的反正弦值', 30, '*'))arcsin = np.arcsin(sin)# 將弧度轉換成角度打印輸出print(np.degrees(arcsin))print('\n')
print(np.char.center('不一樣角度的反餘弦值', 30, '*'))arccos = np.arccos(cos)# 將弧度轉換成角度打印輸出print(np.degrees(arccos))print('\n')
print(np.char.center('不一樣角度的反正切值', 30, '*'))arctan = np.arctan(tan)# 將弧度轉換成角度打印輸出print(np.degrees(arctan))print('\n')
# 返回***********不一樣角度的正弦值***********[0. 0.5 0.70710678 0.8660254 1. ]***********不一樣角度的餘弦值***********[1.00000000e+00 8.66025404e-01 7.07106781e-01 5.00000000e-01 6.12323400e-17]***********不一樣角度的正切值***********[0.00000000e+00 5.77350269e-01 1.00000000e+00 1.73205081e+00 1.63312394e+16]**********不一樣角度的反正弦值***********[ 0. 30. 45. 60. 90.]**********不一樣角度的反餘弦值***********[ 0. 30. 45. 60. 90.]**********不一樣角度的反正切值***********[ 0. 30. 45. 60. 90.]
上面例子中,咱們先計算不一樣角度的正弦值、餘弦值、正切值,而後咱們經過反三角函數,將前面計算的值計算成弧度,而後經過 degrees
函數轉換成角度。咱們能夠看到最後出來的角度和開始輸入的數組的角度是同樣的。函數
咱們在數據的處理中可能會遇到須要將一組數字進行四捨五入操做,這時候咱們就可使用 NumPy 提供的四捨五入函數來處理了。學習
函數 | 描述 |
---|---|
around() | 四捨五入 |
round() | 捨棄小數位 |
floor() | 向下取整 |
ceil() | 向上取整 |
對數組中的數字進行四捨五入spa
咱們來看實例:code
import numpy as np
a = np.array([1, 2.0, 30.12, 129.567])
# 四捨五入(取整)print(np.around(a))# 四捨五入(取一位小數)print(np.around(a, decimals=1))# 四捨五入(取小數點左側第一位)print(np.around(a, decimals=-1))
# 返回[ 1. 2. 30. 130.][ 1. 2. 30.1 129.6][ 0. 0. 30. 130.]
咱們能夠經過 decimals
參數來表示舍入的小數位數,默認值爲0。若是爲負,整數將四捨五入到小數點左側的位置。orm
對數組中的數字進行若干位的捨棄。htm
咱們來看實例:
import numpy as np
a = np.array([1, 2.0, 30.12, 129.567])
# 只舍不入(取整)print(np.around(a))# 只舍不入(到小數點後一位)print(np.around(a, decimals=1))# 只舍不入(取小數點左側第一位)print(np.around(a, decimals=-1))
# 返回[ 1. 2. 30. 130.][ 1. 2. 30.1 129.6][ 0. 0. 30. 130.]
這個函數與 around
函數的區別就是隻是捨棄,不作四捨五入。
返回小於或者等於指定表達式的最大整數,即向下取整。
咱們來看實例:
import numpy as np
a = np.array([1, 2.0, 30.12, 129.567])
# 向下取整print(np.floor(a))
# 返回[ 1. 2. 30. 129.]
這個函數很好理解,就是捨棄小數位。
返回大於或者等於指定表達式的最小整數,即向上取整。
咱們來看實例:
import numpy as np
a = np.array([1, 2.0, 30.12, 129.567])
# 向上取整print(np.ceil(a))
# 返回[ 1. 2. 31. 130.]
這個函數和上面的 floor
是相反含義的函數,向上取整意思是若是沒有小數位或者小數位是0,取當前整數;若是有小數位而且小數位不是0,則取當前數字的整數加1。
接下來咱們來介紹一下 NumPy 的幾個經常使用的算術函數:
函數 | 描述 |
---|---|
add() | 兩個數組元素相加 |
multiply() | 兩個數組元素相乘 |
divide() | 兩個數組元素相除 |
subtract() | 兩個數組元素相減 |
pow() | 將第一個輸入數組中的元素做爲底數,計算它與第二個輸入數組中相應元素的冪 |
mod() | 計算輸入數組中相應元素的相除後的餘數 |
咱們先來看看兩個數組元素的加減乘除的實例:
import numpy as np
a = np.arange(6, dtype=np.float_).reshape(2, 3)print('第一個數組:')print(a)print('第二個數組:')b = np.array([10, 10, 10])print(b)print('\n')
print(np.char.center('兩個數組相加', 20, '*'))print(np.add(a, b))print('\n')
print(np.char.center('兩個數組相減', 20, '*'))print(np.subtract(a, b))print('\n')
print(np.char.center('兩個數組相乘', 20, '*'))print('兩個數組相乘:')print(np.multiply(a, b))print('\n')
print(np.char.center('兩個數組相除', 20, '*'))print(np.divide(a, b))print('\n')
# 返回第一個數組:[[0. 1. 2.] [3. 4. 5.]]第二個數組:[10 10 10]*******兩個數組相加*******[[10. 11. 12.] [13. 14. 15.]]*******兩個數組相減*******[[-10. -9. -8.] [ -7. -6. -5.]]*******兩個數組相乘*******兩個數組相乘:[[ 0. 10. 20.] [30. 40. 50.]]*******兩個數組相除*******[[0. 0.1 0.2] [0.3 0.4 0.5]]
在上面例子中,咱們先定義了兩個數組,第一個是一個二維數組,第二個是一個一維數組,而後對兩個數組的元素進行加減乘除操做,返回的是一個二維數組。
這裏須要注意的是數組必須具備相同的形狀或符合數組廣播規則。
將第一個輸入數組中的元素做爲底數,計算它與第二個輸入數組中相應元素的冪。
咱們先來看看實例:
import numpy as np
c = np.array([10, 100, 1000])print('第一個數組是:')print(c)print('\n')
print(np.char.center('調用 power 函數', 20, '*'))print(np.power(c, 2))print('\n')
d = np.array([1, 2, 3])print('第二個數組是:')print(d)print('\n')
print(np.char.center('再次調用 power 函數', 20, '*'))print(np.power(c, d))
# 返回第一個數組是:[ 10 100 1000]****調用 power 函數*****[ 100 10000 1000000]第二個數組是:[1 2 3]***再次調用 power 函數****[ 10 10000 1000000000]
從例子中咱們能夠看到,若是第二個參數是數字,就將第一個參數數組中的每一個元素做爲底數,計算它與第二個參數的冪;若是第二個參數是數組,那就將第一個參數數組中的每一個元素做爲底數,計算它與第二個數組中元素的冪。
計算輸入數組中相應元素的相除後的餘數。
咱們先來看看實例:
import numpy as np
e = np.array([10, 20, 30])f = np.array([3, 5, 7])print('第一個數組:')print(e)print('\n')
print('第二個數組:')print(f)print('\n')
print(np.char.center('調用 mod 函數', 20, '*'))print(np.mod(e, f))
# 返回第一個數組:[10 20 30]第二個數組:[3 5 7]*****調用 mod 函數******[1 0 2]
這裏也須要注意數組必須具備相同的形狀或符合數組廣播規則。
本文向你們介紹了 NumPy 的數學函數,包括三角函數、四捨五入函數和算術函數。這些函數在一些數據分析中比較常見,運用得好會使你事半功倍。
https://numpy.org/devdocs/reference/routines.math.html
系列文章文中示例代碼:python-100-days