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!


LuckyTemplates Shape Map Visualization for romlig analyse

LuckyTemplates Shape Map Visualization for romlig analyse

Denne bloggen inneholder Shape Map-visualiseringen for romlig analyse i LuckyTemplates. Jeg viser deg hvordan du kan bruke denne visualiseringen effektivt med dens funksjoner og elementer.

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

I denne opplæringen viser jeg frem en unik idé rundt finansiell rapportering, som tildeler resultater for å forhåndsbestemme tabellmaler inne i LuckyTemplates.

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

Opprett DAX-mål i LuckyTemplates ved å bruke eksisterende mål eller formler. Dette er det jeg kaller tiltaket forgreningsteknikk.

Den kraftigste funksjonsanropet i LuckyTemplates

Den kraftigste funksjonsanropet i LuckyTemplates

I denne bloggen kan du utforske LuckyTemplates-datasettet, det kraftigste funksjonskallet som bringer tusenvis av M- og DAX-funksjoner til fingertuppene.

Datamodelleringsteknikker for å organisere DAX-mål

Datamodelleringsteknikker for å organisere DAX-mål

For dagens veiledning vil jeg dele noen få datamodelleringsteknikker for hvordan du kan organisere DAX-tiltakene dine bedre for en mer effektiv arbeidsflyt.

LuckyTemplates Financial Dashboard: Komplette tabelltilpasningstips

LuckyTemplates Financial Dashboard: Komplette tabelltilpasningstips

LuckyTemplates er et flott verktøy for finansiell rapportering. Her er en veiledning om hvordan du lager tilpassede tabeller for ditt LuckyTemplates økonomiske dashbord.

Gode ​​fremgangsmåter for Power Query Language Flow

Gode ​​fremgangsmåter for Power Query Language Flow

Denne opplæringen vil diskutere Power Query Language Flow og hvordan den kan bidra til å lage en jevn og effektiv datarapport.

LuckyTemplates egendefinerte ikoner | PBI visualiseringsteknikk

LuckyTemplates egendefinerte ikoner | PBI visualiseringsteknikk

Jeg vil diskutere en av mine favorittteknikker rundt LuckyTemplates egendefinerte ikoner, som bruker egendefinerte ikoner på en dynamisk måte i LuckyTemplates visuals.

Opprette LuckyTemplates-tabeller ved å bruke UNION & ROW-funksjonen

Opprette LuckyTemplates-tabeller ved å bruke UNION & ROW-funksjonen

I denne bloggen viser jeg deg hvordan du kan lage LuckyTemplates-tabeller ved å bruke en formel som kombinerer UNION-funksjonen og ROW-funksjonen.

On-Premises Data Gateway In Power Automate

On-Premises Data Gateway In Power Automate

Oppdag hvordan on-premises data gateway lar Power Automate få tilgang til skrivebordsapplikasjoner når brukeren er borte fra datamaskinen.