Truncate Float i Python: Forklart med eksempler

Å avkorte et flyttall er en vanlig operasjon som mange programmerere møter i ulike applikasjoner. Prosessen involverer å fjerne desimalplassen til en flyte, og etterlater bare heltallsdelen. Det er en verdifull teknikk for å forenkle beregninger, forbedre lesbarheten i utdata og redusere potensielle avrundingsfeil.

For å avkorte flyteverdier i Python, kan du bruke math.trunc()-funksjonen, desimalmodul eller strengmanipulasjon. Ved å bruke disse teknikkene kan Python-utviklere skreddersy avkortingsprosessen til deres spesifikke krav med fleksibilitet og presisjon.

Truncate Float i Python: Forklart med eksempler

I denne artikkelen skal vi utforske hvordan avkorting kan brukes innenfor . Vi vil fordype oss i ulike praktiske eksempler, og presentere en omfattende titt på hvordan du bruker denne teknikken for maksimal effekt.

La oss starte med å se på de grunnleggende konseptene og teknikkene for å avkorte strenger, tall og datastrukturer i Python.

Innholdsfortegnelse

Grunnleggende om Python Truncate

I denne delen skal vi dekke definisjonen av trunkering, se på Python-funksjoner for trunkering, og lære hvordan du trunkerer desimaler og flyter.

1. Definisjon av Truncate i Python

Truncate er en prosess for å forkorte et tall ved å fjerne desimal. Det er et viktig konsept innen informatikk og matematikk og brukes til å redusere sifre til en enklere form uten å endre verdien.

2. Hvordan bruke Python Truncate-funksjonen

Det er flere måter å avkorte absolutte verdier i Python. En vanlig metode for å oppnå trunkering er å bruke math.trunc()- funksjonen, som fjerner desimalene direkte fra en binær flyttallverdi.

Her er et eksempel:

import math

float1 = 123.356
float2 = -2434.545

print(math.trunc(float1))  
print(math.trunc(float2))  

Produksjon:

123
-2434

Denne metoden gir lignende resultater som funksjonen int() , som også avkorter det gitte tallet ved å fjerne desimalene.

Truncate Float i Python: Forklart med eksempler

3. Hvordan trunkere desimalplasser og flyter i Python

I noen tilfeller kan du bli bedt om å avkorte en float til et spesifikt antall desimaler. Round () -funksjonen kan brukes til å runde tall i slike tilfeller. Vær imidlertid oppmerksom på at round() -funksjonen bare runder av tallet i stedet for å avkorte det.

Hvis du vil avkorte til et bestemt desimaltegn, kan du bruke følgende tilnærming:

def truncate_float(float_number, decimal_places):
    multiplier = 10 ** decimal_places
    return int(float_number * multiplier) / multiplier

float3 = 3.14159
result = truncate_float(float3, 2)

print(result)

Produksjon:

3.14

I eksemplet ovenfor tar truncate_float() -funksjonen to parametere - flytnummeret som skal avkortes og ønsket antall desimalpunkter.

Den bruker en multiplikator for først å flytte flottørens desimaltegn, deretter konverterer resultatet til et heltall (avkorter tallet effektivt), og deler til slutt heltallet med multiplikatoren for å gjenopprette desimaltegnet til sin opprinnelige posisjon.

Husk at arbeid med flyter i Python kan føre til en viss unøyaktighet i beregninger på grunn av flytekomma-aritmetikkens natur. Derfor, når nøyaktighet og presisjon er avgjørende, bør du vurdere å bruke desimalmodulen .

Greit, det er det grunnleggende om hvordan du trunkerer verdier i Python. I neste avsnitt skal vi ta en titt på hvordan du kan avkorte verdier ved å bruke matematikkbiblioteket og andre Python-funksjoner.

Trunkering i Python ved hjelp av matematikkbibliotek og funksjoner

I området for Python-programmering er optimalisering ofte nøkkelen. Bruk av Pythons 'matematikk'-bibliotek og dets innebygde funksjoner kan forbedre ytelsen betydelig, spesielt når du arbeider med store datasett eller komplekse beregninger.

Denne delen er dedikert til å utforske hvordan vi kan bruke 'matematikk'-biblioteket og dets robuste funksjonalitet for avkortingsoppgaver – effektivt redusere eller begrense datastørrelsen – i Python.

1. math.trunc()

Python matematiske bibliotek gir flere funksjoner for å arbeide med flyteverdier, en av dem er math.trunc() . Denne funksjonen returnerer den avkortede verdien av en gitt flottør, og fjerner effektivt brøkdelen og lar bare heltallsdelen stå.

Her er et eksempel på hvordan du bruker math.trunc() :

import math

number = 3.7
truncated_number = math.trunc(number)

print("Original number:", number)
print("Truncated number:", truncated_number)

Produksjon:

3
3.7

math.trunc() avrunder tallet mot null. For positive tall fungerer det som gulvfunksjonen, og for negative tall fungerer det som takfunksjonen.

Truncate Float i Python: Forklart med eksempler

2. math.floor() og math.ceil()

I tillegg til math.trunc() , har matematikkbiblioteket også funksjoner for å avrunde tall på forskjellige måter, for eksempel funksjonene math.floor() og math.ceil() .

Math.floor () -funksjonen runder ned flyttallsverdier til nærmeste heltall, mens math.ceil() runder opp til nærmeste heltall.

import math

# Example using math.floor() function
x = 3.7
y = 9.2

floor_x = math.floor(x)
floor_y = math.floor(y)

print("Floor of x:", floor_x) 
print("Floor of y:", floor_y) 

Produksjon:

Floor of x: 3
Floor of y: 9

Her er en illustrasjon av funksjonen math.floor().

Truncate Float i Python: Forklart med eksempler

Denne kodebiten demonstrerer bruken av math.ceil() -funksjonen:

import math

# Example usage of math.ceil()
x = 3.7
y = 9.2
z = -4.5

ceil_x = math.ceil(x)
ceil_y = math.ceil(y)
ceil_z = math.ceil(z)

# Output the results
print("Ceiling of", x, "is", ceil_x)
print("Ceiling of", y, "is", ceil_y)
print("Ceiling of", z, "is", ceil_z) 

Produksjon:

Ceiling of 3.7 is 4
Ceiling of 9.2 is 10
Ceiling of -4.5 is -4

3. Konvertering av flytende verdi ved å bruke int()

En annen måte å avkorte en flyteverdi er ved å bruke den innebygde int() -funksjonen. Når den sendes i en flottør, vil den konvertere den til et heltall ved å avkorte desimaldelen.

Denne tilnærmingen kan være mer praktisk for enkle trunkeringstilfeller, siden den ikke krever import av matematikkbiblioteket.

float5 = 7.65
float6 = -3.14

print(int(float5)) 
print(int(float6)) 

Produksjon:

7
-3

Det er imidlertid viktig å huske at funksjonen int() ikke er ekvivalent med math.floor() eller math.ceil() , siden den kun avkorter tallet uten å ta hensyn til tegnet.

Her er illustrasjonen av int()- funksjonen ovenfor for en flytende trunkering i en kodeeditor;

Truncate Float i Python: Forklart med eksempler

Oppsummert tilbyr Python matematiske bibliotek flere funksjoner for å jobbe med flyteverdier, inkludert avkorting, avrunding ned og avrunding opp. Matematisk bibliotek er et viktig verktøy å stole på når du trenger å utføre avanserte matematiske operasjoner.

Mens funksjonene int() og math.trunc() tilbyr enkle måter å avkorte flyttallsverdier på, gir desimalmodulen en kraftigere og mer presis tilnærming, så la oss utforske det i neste avsnitt.

Hvordan avkorte verdier i Python med desimalmodulen

Pythons 'desimal'-modul er et kraftig verktøy som tilbyr presisjonshåndtering av desimaltall, en funksjon som kommer spesielt godt med når avkorting er nødvendig.

Denne delen dykker ned i de praktiske bruksområdene til denne modulen for å avkorte verdier i Python. Vi vil utforske trinnvise eksempler og gi en grundig forståelse av konseptene bak denne effektive og presise datamanipuleringsteknikken.

1. Bruke kvantiseringsmetoden

Kvantiseringsmetoden til Desimal- klassen er et allsidig verktøy for å avkorte desimalforekomster. Denne metoden lar utviklere stille inn ønsket presisjons- og avrundingsmodus, noe som sikrer nøyaktig trunkering.

Tenk på følgende eksempel:

from decimal import Decimal, ROUND_DOWN 
number = Decimal('3.14159') 
truncated = number.quantize(Decimal('1.'), rounding=ROUND_DOWN) print(truncated)

Produksjon:

3

I dette eksemplet brukes kvantiseringsmetoden på desimalforekomstnummeret med en presisjon på én desimal og avrundingsmodusen ROUND_DOWN , som effektivt trunkerer verdien.

2. Bruke to_integral_value-metoden

En annen nyttig metode levert av Desimal -klassen er to_integral_value . Denne metoden returnerer det nærmeste heltall til den gitte desimalverdien, og avkorter faktisk desimalplassene.

To_integral_value - metoden lar utviklere spesifisere avrundingsmodus også.

Her er et eksempel:

from decimal import Decimal, ROUND_DOWN 
number = Decimal('3.14159') 
truncated = number.to_integral_value(rounding=ROUND_DOWN) print(truncated)

Produksjon:

3

I dette eksemplet brukes to_integral_value- metoden med avrundingsmodusen ROUND_DOWN , noe som resulterer i trunkering.

3. Bruk av normaliseringsmetoden

Normaliseringsmetoden til Desimal- klassen gir en måte å justere eksponenten og skalaen til en desimalforekomst på . Ved å bruke denne metoden kan utviklere effektivt kutte desimalene.

Tenk på følgende eksempel:

from decimal import Decimal 
number = Decimal('3.14159') 
truncated = number.normalize() 
print(truncated)

Produksjon:

3.14159

I dette eksemplet brukes normaliseringsmetoden på desimalforekomstnummeret , noe som resulterer i samme verdi uten noen desimaler.

La oss deretter se på måter du kan avkorte strenger og lister i Python.

Trunkeringsteknikker for strenger og lister i Python

I denne delen vil vi diskutere ulike teknikker for å avkorte strenger og lister i Python-funksjoner. Vi vil dekke følgende underseksjoner: strengavkortingsteknikker og listeavkorting .

1. Teknikker for avkorting av strenger

Det er flere måter å avkorte en i Python, inkludert bruk av str.format , slicing og f-strenger .

1) Bruke str.format : Denne metoden lar deg avkorte en streng ved å spesifisere en presisjonsverdi. For eksempel:

truncated_string = '{:.5}'.format('aaabbbccc')
print(truncated_string) 

Produksjon:

aaabb

2) Bruke slicing : Ved å bruke skivenotasjon kan du velge en understreng av den originale strengen. For eksempel:

my_string = 'aaabbbccc'
truncated_string = my_string[:5]
print(truncated_string)

Produksjon:

aaabb

3) Bruke f-strenger : Med f-strenger kan trunkeringen utføres inline i strengen. For eksempel:

my_string = 'aaabbbccc'
truncated_string = f'{my_string[:5]}'
print(truncated_string)

Produksjon:

aaabb

2. Listeavkorting

Det er flere måter å avkorte lister i Python, for eksempel skjæring og bruk av listeforståelse.

1) Bruke skjæring : Slicing lar deg velge en rekke elementer i en liste. For eksempel:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
truncated_list = my_list[:5]
print(truncated_list)

Produksjon:

[1, 2, 3, 4, 5]

2) Bruke listeforståelser : Listeforståelser lar deg lage en ny liste ved å iterere over en eksisterende liste og bruke en betingelse eller operasjon. For eksempel, for å avkorte tupler i en liste:

my_list = [('apple', 3), ('orange', 5), ('banana', 2)]
truncated_list = [(fruit, count) for fruit, count in my_list if count < 5]
print(truncated_list)

Produksjon:

[('apple', 3), ('banana', 2)]

Nå som vi har dekket de forskjellige teknikkene for å avkorte strenger og lister ved hjelp av Python, la oss ta en titt på hvordan du kan gjøre det samme ved å bruke biblioteker som NumPy og pandaer.

Hvordan bruke NumPy og pandaer til å avkorte verdier i Python

Når det kommer til numerisk og dataanalyse i Python, gir navnene 'NumPy' og 'pandas' utvilsomt gjenklang blant utviklere. Disse kraftige bibliotekene har forvandlet landskapet for datamanipulering ved å tilby omfattende funksjonalitet for array-behandling, datahåndtering og mye mer.

I denne delen vil vi utforske vanlige måter å avkorte elementer i Python ved å bruke NumPy og pandas DataFrames.

1. Trunkering i Python ved å bruke NumPy

NumPy tilbyr en enkel, innebygd funksjon kalt trunc som lar deg avkorte verdier til nærmeste hele tall.

Trunc - funksjonen eliminerer brøkdelen av inndata, og returnerer bare heltall.

import numpy as np

values = np.array([1.234, 5.678, 9.012])
truncated_values = np.trunc(values)
print(truncated_values)

Produksjon:

array([1., 5., 9.])

Her er noen nøkkelpunkter om trunc -funksjonen:

  • Det fungerer elementmessig, noe som betyr at det kan avkorte hvert element i en matrise eller en liste.

  • Datatypen ( dtype ) til utgangsmatrisen vil være den samme som inputmatrisen.

  • Funksjonen kan brukes på forskjellige datastrukturer, for eksempel , tuples eller arrays, så lenge elementene er numeriske.

2. Bruk av DataFrame og Loc for trunkering i Python

Pandas DataFrame er en kraftig, fleksibel datastruktur for håndtering av store, strukturerte datasett. Du kan bruke DataFrame.truncate() -funksjonen til å avkorte en DataFrame basert på indeksen.

For å se en praktisk demonstrasjon av hvordan du laster datasett i Python, se denne YouTube-videoen:

Alternativt kan du bruke egenskapen loc til å filtrere rader eller kolonner basert på en bestemt tilstand.

import pandas as pd

data = {'A': [1.234, 5.678, 9.012], 'B': [4.567, 8.901, 2.345]}
df = pd.DataFrame(data)

# Truncating based on the index
truncated_df = df.truncate(before=1, after=2)
print(truncated_df)

Produksjon:

       A      B
1  5.678  8.901
2  9.012  2.345

Ved å bruke loc og en betingelse kan vi også oppnå trunkering basert på verdier:

# Condition to truncate values in column 'A'
condition = (df['A'] < 6)

# Truncating DataFrame based on condition
truncated_df = df.loc[condition]
print(truncated_df)

Produksjon:

       A      B
0  1.234  4.567
1  5.678  8.901

I dette eksemplet ble en boolsk betingelse brukt for å filtrere ut rader i DataFrame. Avhengig av brukstilfellet kan du bruke forskjellige betingelser og operasjoner ved å bruke loc .

La oss nå se på de praktiske anvendelsene av trunkering i Python.

3 Praktiske anvendelser av trunkering i Python

Å forstå begrepet trunkering i Python og dets tilsvarende teknikker er bare halvparten av ligningen. Den andre halvparten innebærer å bruke denne kunnskapen effektivt i praktiske scenarier.

I denne delen går vi over fra teori til praksis, og illustrerer hvordan trunkering kan brukes til å optimalisere Python-kode i virkelige applikasjoner.

Trunkering er nyttig i ulike applikasjoner, hvorav noen er:

1. Finansielle beregninger : Når du arbeider med valutaer, er det vanlig å avkorte desimalverdier for å representere faktiske penger der kun cent vurderes, og mindre enheter ikke er relevante.

price = 49.987
truncated_price = int(price * 100) / 100
print(truncated_price)

Produksjon:

49.98

2. Dataaggregering : Trunkering kan også brukes til å samle data i henhold til et spesifikt kriterium. For eksempel å aggregere gjennomsnittsverdien av daglige temperaturavlesninger basert på heltallsverdier.

temperature_data = [22.3, 23.9, 24.8, 23.4, 22.7, 24.1, 24.6]
truncated_temperature = [int(temp) for temp in temperature_data]
mean_temperature = sum(truncated_temperature) / len(truncated_temperature)
print(mean_temperature)

Produksjon:

23.142857142857142

3. Bestilling av elementer : Noen ganger må elementer bestilles basert på en spesifikk avkortingsregel. Dette kan oppnås ved å bruke nøkkelparameteren i Pythons sorted() funksjon.

data = [4.8, 3.2, 2.9, 7.5, 6.1, 9.0, 1.5]
sorted_data = sorted(data, key=lambda x: int(x))
print(sorted_data)

Produksjon:

[1.5, 2.9, 3.2, 4.8, 6.1, 7.5, 9.0]

Disse virkelige applikasjonene for trunkering viser uvurderlig at den er på tvers av ulike felt, for eksempel dataanalyse og maskinlæring.

Likevel oppstår et viktig spørsmål: hvordan sammenlignes trunkeringsteknikker, og hvilken metode bør du bruke for et gitt scenario? For å svare på dette vil vårt neste avsnitt dykke ned i en komparativ analyse av de ulike trunkeringsmetodene vi har diskutert.

Sammenligning av trunkeringsmetoder i Python

For å sammenligne de forskjellige trunkeringsmetodene når det gjelder ytelse og presisjon, la oss vurdere et stort datasett og måle utførelsestiden for hver tilnærming.

import random
import time
from decimal import Decimal, ROUND_DOWN
import math

# Generate a large dataset of floating-point values
data = [random.uniform(0, 1000) for _ in range(10**6)]

# Using int function
start_time = time.time()
truncated_int = [int(number) for number in data]
int_execution_time = time.time() - start_time

# Using math.trunc function
start_time = time.time()
truncated_math = [math.trunc(number) for number in data]
math_execution_time = time.time() - start_time

# Using decimal module
start_time = time.time()
truncated_decimal = [Decimal(str(number)).quantize(Decimal('1.'), rounding=ROUND_DOWN) for number in data]
decimal_execution_time = time.time() - start_time

print(f"Execution time using int function: {int_execution_time:.5f} seconds")
print(f"Execution time using math.trunc function: {math_execution_time:.5f} seconds")
print(f"Execution time using decimal module: {decimal_execution_time:.5f} seconds")

I dette eksemplet genereres et datasett med én million tilfeldige flyttallsverdier mellom 0 og 1000. Utførelsestiden for hver trunkeringsmetode måles ved hjelp av tidsmodulen. Desimalmodultilnærmingen konverterer hvert tall til en desimalforekomst før den avkortes for å sikre nøyaktige resultater.

Ved å kjøre koden kan du observere utførelsestidene for hver metode og foreta en ytelsessammenligning.

Velge riktig avkortingsmetode

Når det gjelder å avkorte flyttallsverdier i Python, avhenger valg av riktig metode av de spesifikke kravene til applikasjonen eller brukstilfellet.

Vurder følgende faktorer når du bestemmer deg for hvilken metode du skal bruke:

  • Presisjon: Hvis presisjon er av største betydning og du trenger fin kontroll over desimaler, gir desimalmodulen det høyeste nivået av nøyaktighet.

  • Ytelse: For enkel trunkering uten behov for høy presisjon tilbyr int() -funksjonen og math.trunc()- funksjonen effektive løsninger.

  • Avrundingsadferd: Avhengig av ønsket avrundingsatferd, lar desimalmodulen deg spesifisere ulike avrundingsmoduser, for eksempel ROUND_DOWN , ROUND_UP , ROUND_HALF_UP , og mer.

  • Kompatibilitet: Hvis du trenger å sikre kompatibilitet med eldre kode eller systemer som ikke støtter desimalmodulen, kan int() -funksjonen eller math.trunc -funksjonen være levedyktige alternativer.

Siste tanker

Truncate Float i Python: Forklart med eksempler

Å forstå det grunnleggende om avkorting av flyteverdier i Python er avgjørende for nøyaktig datamanipulering og analyse. Python tilbyr ulike metoder og funksjoner for å avkorte eller avrunde flyttall basert på spesifikke krav.

Ved å bruke de innebygde funksjonene som math.trunc() , math.floor() , og math.ceil() , kan vi utføre trunkeringsoperasjoner effektivt. Disse funksjonene gir fleksibilitet i håndtering av positive og negative flyteverdier, slik at vi kan kontrollere det ønskede resultatet.

Videre gir desimalmodulen bedre kontroll over avrunding og presisjon, noe som gjør den egnet for økonomiske beregninger eller situasjoner der nøyaktighet er avgjørende.

Som med ethvert programmeringskonsept, er øvelse og eksperimentering nøkkelen til å mestre kunsten å avkorte flyteverdier. Gå videre og bruk disse teknikkene i virkelige scenarier og utforsk ytterligere ressurser, for eksempel Python-dokumentasjon og fellesskapsfora, for å forbedre din forståelse og ferdigheter!

Leave a Comment

DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.

Opprette en datotabell i LuckyTemplates

Opprette en datotabell i LuckyTemplates

Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.

Vanlige SQL-funksjoner: en oversikt

Vanlige SQL-funksjoner: en oversikt

Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.

LuckyTemplates Template Creation: Guide og tips

LuckyTemplates Template Creation: Guide og tips

I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.

LuckyTemplates-rangering og tilpasset gruppering

LuckyTemplates-rangering og tilpasset gruppering

I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.