python数学公式代码导入_NumPy 数学函数及代数运算的实现代码
一、實(shí)驗(yàn)介紹
1.1 實(shí)驗(yàn)內(nèi)容
如果你使用 Python 語(yǔ)言進(jìn)行科學(xué)計(jì)算,那么一定會(huì)接觸到NumPy。NumPy 是支持 Python 語(yǔ)言的數(shù)值計(jì)算擴(kuò)充庫(kù),其擁有強(qiáng)大的多維數(shù)組處理與矩陣運(yùn)算能力。除此之外,NumPy 還內(nèi)建了大量的函數(shù),方便你快速構(gòu)建數(shù)學(xué)模型。
1.2 實(shí)驗(yàn)知識(shí)點(diǎn)
NumPy 安裝
NumPy 數(shù)值類(lèi)型介紹
1.3 實(shí)驗(yàn)環(huán)境
Python3
Jupyter Notebook
1.4 適合人群
本課程難度為一般,屬于初級(jí)級(jí)別課程,適合具有 Python 基礎(chǔ),并對(duì)使用 NumPy 進(jìn)行科學(xué)計(jì)算感興趣的用戶(hù)。
二、數(shù)學(xué)函數(shù)
使用 python 自帶的運(yùn)算符,你可以完成數(shù)學(xué)中的加減乘除,以及取余、取整,冪次計(jì)算等。導(dǎo)入自帶的 math 模塊之后,里面又包含絕對(duì)值、階乘、開(kāi)平方等一些常用的數(shù)學(xué)函數(shù)。不過(guò),這些函數(shù)仍然相對(duì)基礎(chǔ)。如果要完成更加復(fù)雜一些的數(shù)學(xué)計(jì)算,就會(huì)顯得捉襟見(jiàn)肘了。
numpy 為我們提供了更多的數(shù)學(xué)函數(shù),以幫助我們更好地完成一些數(shù)值計(jì)算。下面就依次來(lái)看一看。
2.1 三角函數(shù)
首先, 看一看 numpy 提供的三角函數(shù)功能。這些方法有:
numpy.sin(x)
numpy.cos(x)
numpy.tan(x)
numpy.arcsin(x)
numpy.arccos(x)
numpy.arctan(x)
numpy.hypot(x1,x2)
numpy.degrees(x)
numpy.radians(x)
numpy.deg2rad(x)
numpy.rad2deg(x)
比如,我們可以用上面提到的 numpy.rad2deg(x) 將弧度轉(zhuǎn)換為度。
示例代碼:
import numpy as np
np.rad2deg(np.pi)
2.2 雙曲函數(shù)
在數(shù)學(xué)中,雙曲函數(shù)是一類(lèi)與常見(jiàn)的三角函數(shù)類(lèi)似的函數(shù)。雙曲函數(shù)經(jīng)常出現(xiàn)于某些重要的線(xiàn)性微分方程的解中,使用 numpy 計(jì)算它們的方法為:
numpy.sinh(x)
numpy.cosh(x)
numpy.tanh(x)
numpy.arcsinh(x)
numpy.arccosh(x)
numpy.arctanh(x)
2.3 數(shù)值修約
數(shù)值修約, 又稱(chēng)數(shù)字修約, 是指在進(jìn)行具體的數(shù)字運(yùn)算前, 按照一定的規(guī)則確定一致的位數(shù), 然后舍去某些數(shù)字后面多余的尾數(shù)的過(guò)程[via. 維基百科]。比如, 我們常聽(tīng)到的「4 舍 5 入」就屬于數(shù)值修約中的一種。
numpy.around(a)
numpy.round_(a)
numpy.rint(x)
numpy.fix(x, y)
numpy.floor(x)
numpy.ceil(x)
numpy.trunc(x)
隨機(jī)選擇幾個(gè)浮點(diǎn)數(shù),看一看上面方法的區(qū)別。
2.4 求和、求積、差分
下面這些方法用于數(shù)組內(nèi)元素或數(shù)組間進(jìn)行求和、求積以及進(jìn)行差分。
numpy.prod(a, axis, dtype, keepdims)
numpy.sum(a, axis, dtype, keepdims)
numpy.nanprod(a, axis, dtype, keepdims)
numpy.nansum(a, axis, dtype, keepdims)
numpy.cumprod(a, axis, dtype)
numpy.cumsum(a, axis, dtype)
numpy.nancumprod(a, axis, dtype)
numpy.nancumsum(a, axis, dtype)
numpy.diff(a, n, axis)
numpy.ediff1d(ary, to_end, to_begin)
numpy.gradient(f)
numpy.cross(a, b, axisa, axisb, axisc, axis)
numpy.trapz(y, x, dx, axis)
2.5 指數(shù)和對(duì)數(shù)
如果你需要進(jìn)行指數(shù)或者對(duì)數(shù)求解,可以用到以下這些方法。
numpy.exp(x) :計(jì)算輸入數(shù)組中所有元素的指數(shù)。
numpy.expm1(x) :對(duì)數(shù)組中的所有元素計(jì)算 exp(x) - 1.
numpy.exp2(x) :對(duì)于輸入數(shù)組中的所有 p, 計(jì)算 2 ** p。
numpy.log(x) :計(jì)算自然對(duì)數(shù)。
numpy.log10(x) :計(jì)算常用對(duì)數(shù)。
numpy.log2(x) :計(jì)算二進(jìn)制對(duì)數(shù)。
numpy.log1p(x) : log(1 + x) 。
numpy.logaddexp(x1, x2) : log2(2**x1 + 2**x2) 。
numpy.logaddexp2(x1, x2) : log(exp(x1) + exp(x2)) 。
2.6 算術(shù)運(yùn)算
當(dāng)然,numpy 也提供了一些用于算術(shù)運(yùn)算的方法,使用起來(lái)會(huì)比 python 提供的運(yùn)算符靈活一些,主要是可以直接針對(duì)數(shù)組。
numpy.add(x1, x2)
numpy.reciprocal(x)
numpy.negative(x)
numpy.multiply(x1, x2)
numpy.divide(x1, x2)
numpy.power(x1, x2)
numpy.subtract(x1, x2)
numpy.fmod(x1, x2)
numpy.mod(x1, x2)
numpy.modf(x1)
numpy.remainder(x1, x2)
2.7 矩陣和向量積
求解向量、矩陣、張量的點(diǎn)積等同樣是 numpy 非常強(qiáng)大的地方。
numpy.dot(a,b)
numpy.vdot(a,b)
numpy.inner(a,b)
numpy.outer(a,b)
numpy.matmul(a,b)
numpy.tensordot(a,b)
numpy.kron(a,b)
2.8 其他
除了上面這些歸好類(lèi)別的方法,numpy 中還有一些用于數(shù)學(xué)運(yùn)算的方法,歸納如下:
numpy.angle(z, deg)
numpy.real(val)
numpy.imag(val)
numpy.conj(x)
numpy.convolve(a, v, mode)
numpy.sqrt(x)
numpy.cbrt(x)
numpy.square(x)
numpy.absolute(x)
numpy.fabs(x)
numpy.sign(x)
numpy.maximum(x1, x2)
numpy.minimum(x1, x2)
numpy.nan_to_num(x)
numpy.interp(x, xp, fp, left, right, period)
三、代數(shù)運(yùn)算
上面,我們分為 8 個(gè)類(lèi)別,介紹了 numpy 中常用到的數(shù)學(xué)函數(shù)。這些方法讓復(fù)雜的計(jì)算過(guò)程表達(dá)更為簡(jiǎn)單。除此之外,numpy 中還包含一些代數(shù)運(yùn)算的方法,尤其是涉及到矩陣的計(jì)算方法,求解特征值、特征向量、逆矩陣等,非常方便。
numpy.linalg.cholesky(a)
numpy.linalg.qr(a ,mode)
numpy.linalg.svd(a ,full_matrices,compute_uv)
numpy.linalg.eig(a)
numpy.linalg.eigh(a, UPLO)
numpy.linalg.eigvals(a)
numpy.linalg.eigvalsh(a, UPLO)
numpy.linalg.norm(x ,ord,axis,keepdims)
numpy.linalg.cond(x ,p)
numpy.linalg.det(a)
numpy.linalg.matrix_rank(M ,tol)
numpy.linalg.slogdet(a)
numpy.trace(a ,offset,axis1,axis2,dtype,out)
numpy.linalg.solve(a,b)
numpy.linalg.tensorsolve(a,b ,axes)
numpy.linalg.lstsq(a,b ,rcond)
numpy.linalg.inv(a)
numpy.linalg.pinv(a ,rcond)
numpy.linalg.tensorinv(a ,ind)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
本文標(biāo)題: NumPy 數(shù)學(xué)函數(shù)及代數(shù)運(yùn)算的實(shí)現(xiàn)代碼
本文地址: http://www.cppcns.com/jiaoben/python/234786.html
總結(jié)
以上是生活随笔為你收集整理的python数学公式代码导入_NumPy 数学函数及代数运算的实现代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 系统操作日志设计(转载)
- 下一篇: python十种日期格式_Python