numpy中的log和ln函數(shù)解讀
numpy的log和ln函數(shù)
每次當(dāng)我想用python實(shí)現(xiàn)ln函數(shù)時(shí),下意識(shí)的就會(huì)輸入錯(cuò)誤的函數(shù)代碼,這里特來記錄一下關(guān)于numpy中的ln和log函數(shù)正確的調(diào)用方式。
ln函數(shù)
import numpy as np
class NumpyStudy:
? ? def lnFunction(self):
? ? ? ? const = np.e
? ? ? ? result = np.log(const)
? ? ? ? print("函數(shù)ln(e)的值為:")
? ? ? ? print(result)
if __name__ == "__main__":
? ? main = NumpyStudy()
? ? main.lnFunction()
"""
函數(shù)ln(e)的值為:
1.0
"""我們可以看到得到的值為1,說明在python中,np.log()指代的便是數(shù)學(xué)中使用的ln函數(shù)。
log函數(shù)
import numpy as np
class NumpyStudy:
? ? def logFunction(self):
? ? ? ? const = 100
? ? ? ? result = np.log10(const)
? ? ? ? print("函數(shù)ln(e)的值為:")
? ? ? ? print(result)
if __name__ == "__main__":
? ? main = NumpyStudy()
? ? main.logFunction()
"""
函數(shù)ln(e)的值為:
2.0
"""我們可以看到得到的值為2,說明在python中,np.log10()指代的便是數(shù)學(xué)中使用的lg函數(shù)。
前幾天看到有一個(gè)小伙伴留言說,既然以10和以自然數(shù)e為底數(shù)的目前都有了,那么以其他數(shù)比如2,3,4等等為底數(shù)的log函數(shù)該怎么辦呢?
這里我們需要用到一下數(shù)學(xué)上的小技巧—換底公式進(jìn)行一下變換。例如:我們想要求出log以2為底16的值。

import numpy as np
class NumpyStudy:
def lnFunction(self):
result = np.log(16) / np.log(2)
result1 = np.log10(16) / np.log10(2)
print("函數(shù)ln(e)的值為:")
print(result)
print(result1)
if __name__ == "__main__":
main = NumpyStudy()
main.lnFunction()
"""
函數(shù)ln(e)的值為:
4.0
4.0
"""可以看到我們最后成功地獲取到了正確的結(jié)果4.0。用這種方法我們可以獲取到以任意數(shù)為底數(shù)的log函數(shù)值。
numpy的部分通用函數(shù)
1.數(shù)組算術(shù)運(yùn)算符
| 運(yùn)算符 | 對應(yīng)的通用函數(shù) | 描述 |
|---|---|---|
| + | np.add | 加法運(yùn)算(即1+1=2) |
| - | np.substract | 減法運(yùn)算(即3-2=1) |
| - | np.negative | 負(fù)數(shù)運(yùn)算(即-2) |
| * | Nnp.multiply | 乘法運(yùn)算(即2*3=6) |
| / | np.divide | 除法運(yùn)算(即3/2=1.5) |
| // | np.floor_divide | 向下整除運(yùn)算(floor division,即3//2=1) |
| ** | np.power | 指數(shù)運(yùn)算(即2 ** 3=8) |
| % | np.mod | 模/余數(shù)(即9%4=1) |
這些都是一元通用函數(shù),寫代碼時(shí)可直接用左欄的運(yùn)算符代替
x=np.arrange(4) #array([0, 1, 2, 3]) x + 2 #array([2, 3, 4, 5]) np.add(x,2) #array([2, 3, 4, 5])
2.絕對值通用函數(shù)np.absolute()
也可以通過np.abs()訪問
其對復(fù)數(shù)的運(yùn)算是求模
x=np.array([-2, -1, 0, 1, 2]) abs(x) #array([2, 1, 0, 1, 2]) np.absolute(x) #array([2, 1, 0, 1, 2])
3.三角函數(shù)
np.sin()np.cos()np.tan()
反三角同理
4.指數(shù)和對數(shù)
| 表達(dá) | 函數(shù) |
|---|---|
| e^x | np.exp(x) |
| 2^x | np.exp2(x) |
| 3^x | np.power(3, x) |
| ln(x) | np.log(x) |
| log2(x) | np.log2(x) |
| log10(x) | np.log10(x) |
| exp(x)-1 | np.expm1(x) |
| log(1+x) | np.log1p(x) |
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中的字符串類型基本知識(shí)學(xué)習(xí)教程
這篇文章主要介紹了Python中的字符串類型基本知識(shí)學(xué)習(xí)教程,包括轉(zhuǎn)義符和字符串拼接以及原始字符串等基礎(chǔ)知識(shí)講解,需要的朋友可以參考下2016-02-02
Anaconda安裝時(shí)默認(rèn)python版本改成其他版本的兩種方式
這篇文章主要給大家介紹了關(guān)于Anaconda安裝時(shí)默認(rèn)python版本改成其他版本的兩種方式,anaconda是一個(gè)非常好用的python發(fā)行版本,其中包含了大部分常用的庫,需要的朋友可以參考下2023-10-10
Python 爬取淘寶商品信息欄目的實(shí)現(xiàn)
這篇文章主要介紹了Python 爬取淘寶商品信息欄目的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
使用Python代碼進(jìn)行PowerPoint演示文稿的合并與拆分
多個(gè)PowerPoint演示文稿的處理可能會(huì)成為非常麻煩的工作,有時(shí)需要將多個(gè)演示文稿合并為一個(gè)演示文稿,從而不用在演示時(shí)重復(fù)打開演示文稿,本文我們可以使用Python代碼來快速、準(zhǔn)確的執(zhí)行PowerPoint演示文稿的合并于拆分操作,需要的朋友可以參考下2024-03-03
利用信號(hào)如何監(jiān)控Django模型對象字段值的變化詳解
這篇文章主要給大家介紹了關(guān)于利用信號(hào)如何監(jiān)控Django模型對象字段值變化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
Python的string模塊中的Template類字符串模板用法
通過string.Template我們可以為Python定制字符串的替換標(biāo)準(zhǔn),這里我們就來通過示例解析Python的string模塊中的Template類字符串模板用法:2016-06-06
python發(fā)送郵件示例(支持中文郵件標(biāo)題)
python發(fā)送中文郵件示例,支持中文郵件標(biāo)題和中文郵件內(nèi)容。支持多附件。根據(jù)用戶名推測郵件服務(wù)器提供商2014-02-02
Python?OpenCV超詳細(xì)講解圖像堆疊的實(shí)現(xiàn)
OpenCV用C++語言編寫,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要傾向于實(shí)時(shí)視覺應(yīng)用,并在可用時(shí)利用MMX和SSE指令,本篇文章帶你通過OpenCV實(shí)現(xiàn)圖像堆疊2022-04-04

