Laske neliöjuuri pythonissa Math.sqrt (), cmath ja numphy

Soita Math.sqrt () laskeaksesi oikeat neliöjuuret Pythonissa. Siirry negatiivisiin tai kompleksisiin tuloihin CMATH.SQRT (). Kun tarvitset elementtisivua taulukkojen yli, käytä numpy.sqrt (); Käy vain kokonaislukujen tuloksille (juuren lattia), käytä Math.Isqrt ().

Menetelmä 1-Käytä Math.sqrt () todellisille, ei-negatiivisille numeroille

Vaihe 1:Tuo standardimathmoduuli.

import math

Vaihe 2:Soittaamath.sqrt(x)kanssainttaifloatsaada afloattulos.

math.sqrt(49)      # 7.0
math.sqrt(70.5)    # 8.396427811873332
math.sqrt(0)       # 0.0

Vaihe 3:Käsitellä negatiivisia tuloja;math.sqrtkorottaaValueErrorpuolestax < 0.

def safe_sqrt(x):
    import math
    try:
        return math.sqrt(x)
    except ValueError:
        return "Use cmath.sqrt() for negatives."

Vaihe 4:Sovelletaan reaalimaailman laskelmaan (Pythagoran lause).

a, b = 27, 39
run_distance = math.sqrt(a**2 + b**2)  # 47.43416490252569

Menetelmä 2 - Käytä cmath.sqrt () negatiivisiin tai kompleksisiin tuloihin

Vaihe 1:Tuodacmathmonimutkaiselle numerolle.

import cmath

Vaihe 2:Soittaacmath.sqrt(x)Negatiiville tai monimutkaisille numeroille; Se palauttaa aina monimutkaisen arvon.

cmath.sqrt(-25)     # 5j
cmath.sqrt(8j)       # (2+2j)

Vaihe 3:Pääsykomponentit kauttaresult.realjaresult.imagtarvittaessa.

z = cmath.sqrt(-4)
z.real, z.imag      # (0.0, 2.0)

Menetelmä 3 - Käytä numphy vektorisoituihin neliöjuuriin taulukkojen yli

Vaihe 1:Tuo numphy.

import numpy as np

Vaihe 2:Laskea elementtien juuretnp.sqrt; Pass -taulukko tai skalaarit.

arr = np.array([4, 9, 16, 25])
np.sqrt(arr)        # array([2., 3., 4., 5.])

Vaihe 3:Käsittele negatiivit:np.sqrtantaanannegatiivisten reaktioiden suhteen; Käytä np.emath.sqrt () tai valettu kompleksiksi.

a = np.array([4, -1, np.inf])
np.sqrt(a)              # [ 2., nan, inf]
np.emath.sqrt(a)        # [ 2.+0.j,  0.+1.j, inf+0.j]
np.sqrt(a.astype(complex))  # [ 2.+0.j,  0.+1.j, inf+0.j]

Menetelmä 4 - Käytä eksponentti -operaattoria tai POW (), kun et voi tuoda moduulia

Vaihe 1:Nosta puolen voimaan sähköoperaattorin kanssa.

9 ** 0.5     # 3.0
2 ** 0.5     # 1.4142135623730951

Vaihe 2:Kunnioitus negatiivien etusijalle; Suluista tarvitaan, jotta vältetään levittäminen miinus eksponentinaation jälkeen.

-4 ** 0.5      # -2.0  (interpreted as -(4 ** 0.5))
(-4) ** 0.5    # (1.2246467991473532e-16+2j)  complex result

Vaihe 3:Käytä vaihtoehtoisestipow(x, 0.5)Sama vaikutus ei-negatiivisiin tuloihin.

Ehdotettu lukeminen:Smart Square Mercy Kirjaudu sisään Mercy.smart-neliö COM 2024

pow(16, 0.5)   # 4.0

Menetelmä 5 - Hanki kokonaisluku neliöjuuret (lattia) tarkkaan kokonaislukumatkaan

Vaihe 1:Käyttäämath.isqrt(n)Ei-negatiivisen kokonaisluvun kokonaisluku neliöjuuri (lattia).

import math
math.isqrt(10)   # 3  (since 3*3 = 9 ≤ 10 < 4*4)

Vaihe 2:Tarkista täydelliset neliöt yhdellä vertailulla.

n = 49
r = math.isqrt(n)
is_perfect_square = (r * r == n)   # True

Muistiinpanot ja sudenkuopat

  • math.sqrt()toimii todellisissa, ei-negatiivisissa tuloissa ja palauttaa kelluvan; Nolla on voimassa.
  • Negatiiviset tulot tarvitsevatcmath.sqrt()monimutkaisen tuloksen saamiseksi.
  • numpy.sqrt()on vektorisoitu ja nopea taulukkojen suhteen; Negatiiviset todelliset arvot tuottavatnanEllet käytänp.emath.sqrt()tai monimutkainen dtype.
  • Eksponentti -operaattori**japow()voi laskea neliöjuuret, mutta ovat vähemmän selkeitä; mieluumminmath.sqrt()luettavuus ja tyypillisesti parempi nopeus.
  • Liukulukutulokset voivat olla epätarkkoja erittäin suurille kokonaislukuille; käyttäämath.isqrt()Tarkalle kokonaislukukerroksen tuloksille.

Valitamath.sqrt()tavanomaisiin todellisiin tuloihin,cmath.sqrt()negatiivisille/monimutkaisille arvoille janumpy.sqrt()Kun tarvitset vektorisoituja toimintoja; käyttäämath.isqrt()tarkkoihin kokonaislukukerroksiin.

Related Posts