Käyttäämath.logNumeroiden luonnollisen logaritmin (perus E) laskeminen tavanomaisessa python -koodissa ja vaihtaminennumpy.logKun haluat nopeasti, vektorisoituja toimintoja taulukkojen yli. Molemmat palauttavat oletuksena; Numpy hyväksyy lisäksi taulukon kaltaiset tulot ja monimutkaiset arvot.
Menetelmä 1 - Laske LN matematiikan moduuliin (skalaarit)
Vaihe 1:Tuo matematiikkamoduuli.
import mathVaihe 2:Laske positiivisen luvun luonnollinen loki käyttämällämath.log(x).
x = 2.0
print(math.log(x)) # 0.6931471805599453Vaihe 3:Anna toinen argumentti logaritmin laskemiseksi toiseen tukikohtaan tarvittaessa.
print(math.log(100, 10)) # 2.0 (log base 10 of 100)Vaihe 4:Suojaa ei -positiivisia panoksia, jotka nostavatValueError.
Liittyvät:Gemini tuo luonnollisen äänen toiston Google -dokumenteille
def safe_ln(v: float) -> float:
if v <= 0:
raise ValueError("ln is undefined for non-positive values.")
return math.log(v)
print(safe_ln(1.0)) # 0.0Vihje: arvoille, jotka ovat hyvin lähellä nollaa,math.log1p(x)Antaa paremman tarkkuuden LN: lle (1+x).
Vaihtoehto 2 - Laske LN numpyn kanssa (skalaarit, luettelot, ndarrays)
Vaihe 1:Tuo numphy.
import numpy as npVaihe 2:Soveltaanp.logSkalaariin, luetteloon tai numpuun.
arr = np.array([1, 2, 3, 4], dtype=float)
print(np.log(arr)) # [0. 0.69314718 1.09861229 1.38629436]Vaihe 3:Käsittele nolloja ja negatiivisia nimenomaisesti virheellisten tulosten välttämiseksi.
# Configure how NumPy reports floating errors (optional).
np.seterr(divide="ignore", invalid="ignore")
data = np.array([1.0, 0.0, -2.0, 3.0])
logs = np.log(data) # [-0. -inf nan 1.09861229]
# Mask out invalids for downstream use.
valid_mask = data > 0
logs_clean = np.full_like(data, np.nan)
logs_clean[valid_mask] = np.log(data[valid_mask])
print(logs_clean) # [0. nan nan 1.09861229]Vaihe 4:Laske muut emäkset tarvittaessa.
x = np.array([10, 100, 1000], dtype=float)
base = 10.0
print(np.log(x) / np.log(base)) # [1. 2. 3.]- Numpy vektorisoi operaation, joten suuret taulukot laskevat nopeasti.
- Pienelle x: lle lähellä nollaa,
np.log1p(x)Parantaa LN: n (1+x) numeerista tarkkuutta.
Lähestymistapa 3 - Työskentele monimutkaisten numeroiden kanssa
Vaihe 1:Tuo kompleksin Number -matemaattinen kirjasto skalaarikompleksia varten.
import cmathVaihe 2:Käyttääcmath.logmonimutkaisille skalateille tainp.logmonimutkaisille taulukoille.
z = 3 + 2j
print(cmath.log(z)) # (1.2824746787307684+0.5880026035475675j)
z_arr = np.array([1+1j, 2+0j, -1+0j], dtype=complex)
print(np.log(z_arr)) # Complex-valued natural logs- Tosiarvoinen
mathModuuli ei tue monimutkaisia tuloja; käyttääcmathtai numphy -kompleksinen taulukko.
Siinä se - käytämath.logsuoraviivaiseksi skalaarista janp.logKun haluat vektorisoidut taulukkooperaatiot tai monimutkaiset numerot ja muista vartioida ei-positiivisia tuloja reaalinumeroissa työnkulkuissa.














