Truncate Float i Python: Forklaret med eksempler

At afkorte et flydende kommanummer er en almindelig operation, som mange programmører støder på i forskellige applikationer. Processen involverer at fjerne decimalen for en float, så kun heltalsdelen efterlades. Det er en værdifuld teknik til at forenkle beregninger, forbedre læsbarheden i output og reducere potentielle afrundingsfejl.

For at afkorte flydende værdier i Python kan du bruge math.trunc()-funktionen, decimalmodulet eller strengmanipulation. Ved at bruge disse teknikker kan Python-udviklere skræddersy trunkeringsprocessen til deres specifikke krav med fleksibilitet og præcision.

Truncate Float i Python: Forklaret med eksempler

I denne artikel vil vi undersøge, hvordan trunkering kan anvendes inden for . Vi vil dykke ned i forskellige praktiske eksempler og præsentere et omfattende kig på, hvordan man bruger denne teknik for maksimal effekt.

Lad os starte med at se på de grundlæggende begreber og teknikker til trunkering af strenge, tal og datastrukturer i Python.

Indholdsfortegnelse

Grundlæggende om Python Truncate

I dette afsnit vil vi dække definitionen af ​​trunkering, se på Python-funktioner til trunkering og lære, hvordan man trunkerer decimaler og flydere.

1. Definition af Truncate i Python

Afkortning er en proces med at forkorte et tal ved at fjerne decimalen. Det er et vigtigt koncept inden for datalogi og matematik og bruges til at reducere cifre til en enklere form uden at ændre deres værdi.

2. Sådan bruges Python Truncate-funktionen

Der er flere måder at afkorte absolutte værdier i Python. En almindelig metode til at opnå trunkering er ved at bruge funktionen math.trunc() , som direkte fjerner decimalerne fra en binær flydende decimalværdi.

Her er et eksempel:

import math

float1 = 123.356
float2 = -2434.545

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

Produktion:

123
-2434

Denne metode giver lignende resultater som funktionen int() , som også afkorter det givne tal ved at fjerne decimalerne.

Truncate Float i Python: Forklaret med eksempler

3. Sådan afkortes decimaler og flydere i Python

I nogle tilfælde kan du blive bedt om at afkorte en float til et bestemt antal decimaler. Funktionen round() kan bruges til at afrunde tal i sådanne tilfælde. Bemærk dog, at funktionen round() kun lige runder tallet i stedet for at afkorte det.

Hvis du vil afkorte til et bestemt decimaltegn, kan du bruge følgende fremgangsmåde:

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)

Produktion:

3.14

I ovenstående eksempel tager funktionen truncate_float() to parametre - flydetallet, der skal afkortes, og det ønskede antal decimaler.

Den bruger en multiplikator til først at flytte flyderens decimalkomma, derefter konvertere resultatet til et heltal (effektivt afkorter tallet), og dividerer til sidst hele tallet med multiplikatoren for at gendanne decimaltegnet til dets oprindelige position.

Husk, at arbejde med flydere i Python kan føre til en vis unøjagtighed i beregninger på grund af flydende kommaaritmetikkens natur. Derfor, når nøjagtighed og præcision er afgørende, kan du overveje at bruge decimalmodulet .

Okay, det er det grundlæggende i, hvordan man trunkerer værdier i Python. I næste afsnit tager vi et kig på, hvordan du kan afkorte værdier ved hjælp af matematikbiblioteket og andre Python-funktioner.

Afkortning i Python ved hjælp af matematikbibliotek og funktioner

Inden for Python-programmering er optimering ofte nøglen. Brug af Pythons 'matematik'-bibliotek og dets indbyggede funktioner kan forbedre ydeevnen betydeligt, især når man har at gøre med store datasæt eller komplekse beregninger.

Denne sektion er dedikeret til at udforske, hvordan vi kan bruge 'matematik'-biblioteket og dets robuste funktionaliteter til trunkeringsopgaver - effektivt at reducere eller begrænse datastørrelsen - i Python.

1. math.trunc()

Python-matematikbiblioteket giver flere funktioner til at arbejde med float-værdier, hvoraf en er math.trunc() . Denne funktion returnerer den trunkerede værdi af en given float, fjerner effektivt dens brøkdel og efterlader kun heltalsdelen.

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

import math

number = 3.7
truncated_number = math.trunc(number)

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

Produktion:

3
3.7

math.trunc() runder tallet mod nul. For positive tal fungerer det som gulvfunktionen, og for negative tal fungerer det som loftsfunktionen.

Truncate Float i Python: Forklaret med eksempler

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

Ud over math.trunc() giver matematikbiblioteket også funktioner til afrunding af tal på forskellige måder, såsom funktionerne math.floor() og math.ceil() .

Funktionen math.floor() runder flydende kommaværdier ned til det nærmeste heltal, mens math.ceil() runder op til det nærmeste heltal.

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) 

Produktion:

Floor of x: 3
Floor of y: 9

Her er en illustration af math.floor()- funktionen

Truncate Float i Python: Forklaret med eksempler

Dette kodestykke demonstrerer brugen af ​​funktionen math.ceil() :

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) 

Produktion:

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

3. Konvertering af flydende værdi ved hjælp af int()

En anden måde at afkorte en flydende værdi er ved at bruge den indbyggede int() funktion. Når den føres i en flyder, vil den konvertere den til et heltal ved at afkorte decimaldelen.

Denne tilgang kan være mere praktisk til simple trunkeringstilfælde, da den ikke kræver import af matematikbiblioteket.

float5 = 7.65
float6 = -3.14

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

Produktion:

7
-3

Det er dog vigtigt at huske, at funktionen int() ikke svarer til math.floor() eller math.ceil() , da den kun afkorter tallet uden at tage dets fortegn i betragtning.

Her er illustrationen af ​​ovenstående int() funktion til en float trunkering i en kodeeditor;

Truncate Float i Python: Forklaret med eksempler

Sammenfattende tilbyder Python-matematikbiblioteket flere funktioner til at arbejde med flydende værdier, herunder trunkering, afrunding nedad og afrunding opad. Matematikbiblioteket er et vigtigt værktøj at stole på, når du skal udføre avancerede matematiske operationer.

Mens funktionerne int() og math.trunc() tilbyder enkle måder at afkorte flydende kommaværdier på, giver decimalmodulet en mere kraftfuld og præcis tilgang, så lad os undersøge det i næste afsnit.

Sådan afkortes værdier i Python med decimalmodulet

Pythons 'decimal'-modul er et kraftfuldt værktøj, der tilbyder præcis håndtering af decimaltal, en funktion, der er særlig praktisk, når der er behov for trunkering.

Dette afsnit dykker ned i de praktiske anvendelser af dette modul til trunkering af værdier i Python. Vi vil udforske trin-for-trin eksempler og give en dybdegående forståelse af koncepterne bag denne effektive og præcise datamanipulationsteknik.

1. Brug af kvantiseringsmetoden

Kvantiseringsmetoden for Decimal- klassen er et alsidigt værktøj til at afkorte decimalforekomster. Denne metode giver udviklere mulighed for at indstille den ønskede præcisions- og afrundingstilstand, hvilket sikrer nøjagtig trunkering.

Overvej følgende eksempel:

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

Produktion:

3

I dette eksempel anvendes kvantiseringsmetoden på decimalforekomstnummeret med en præcision på én decimal og afrundingstilstanden ROUND_DOWN , som effektivt trunkerer værdien.

2. Brug af metoden to_integral_value

En anden nyttig metode leveret af Decimal -klassen er to_integral_value . Denne metode returnerer det nærmeste heltal til den givne decimalværdi, hvilket effektivt afkorter decimalerne.

Metoden to_integral_value giver udviklere mulighed for også at angive afrundingstilstanden.

Her er et eksempel:

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

Produktion:

3

I dette eksempel bruges to_integral_value- metoden med afrundingstilstanden ROUND_DOWN , hvilket resulterer i trunkering.

3. Anvendelse af normaliseringsmetoden

Normaliseringsmetoden for klassen Decimal giver en måde at justere eksponenten og skalaen for en decimalforekomst. Ved at bruge denne metode kan udviklere effektivt afkorte decimalerne.

Overvej følgende eksempel:

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

Produktion:

3.14159

I dette eksempel anvendes normaliseringsmetoden på decimalforekomstnummeret , hvilket resulterer i den samme værdi uden decimaler.

Lad os derefter se på måder, hvorpå du kan afkorte strenge og lister i Python.

Trunkeringsteknikker til strenge og lister i Python

I dette afsnit vil vi diskutere forskellige teknikker til at trunkere strenge og lister i Python-funktioner. Vi vil dække følgende underafsnit: teknikker til afkortning af strenge og afkortning af liste .

1. Teknikker til afkortning af strenge

Der er flere måder at afkorte en i Python, inklusive brugen af ​​str.format , slicing og f-strenge .

1) Brug af str.format : Denne metode giver dig mulighed for at afkorte en streng ved at angive en præcisionsværdi. For eksempel:

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

Produktion:

aaabb

2) Brug af udsnit : Ved at bruge udsnitsnotation kan du vælge en understreng af den originale streng. For eksempel:

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

Produktion:

aaabb

3) Brug af f-strenge : Med f-strenge kan trunkeringen udføres inline i strengen. For eksempel:

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

Produktion:

aaabb

2. Listeafkortning

Der er flere måder at afkorte lister i Python, såsom udskæring og brug af listeforståelser.

1) Brug af udskæring : Udskæring giver dig mulighed for at vælge en række elementer på en liste. For eksempel:

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

Produktion:

[1, 2, 3, 4, 5]

2) Brug af listeforståelser : Listeforståelser giver dig mulighed for at oprette en ny liste ved at iterere over en eksisterende liste og anvende en betingelse eller operation. For eksempel for at afkorte tupler på 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)

Produktion:

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

Nu hvor vi har dækket de forskellige teknikker til at afkorte strenge og lister ved hjælp af Python, lad os tage et kig på, hvordan du kan gøre det samme ved at bruge biblioteker som NumPy og pandaer.

Sådan bruges NumPy og pandaer til at afkorte værdier i Python

When it comes to numerical and data analysis in Python, the names ‘NumPy’ and ‘pandas’ undoubtedly resonate among developers. These powerful libraries have transformed the landscape of data manipulation by providing extensive functionality for array processing, data handling, and much more.

In this section, we’ll explore common ways to truncate elements in Python using NumPy and pandas DataFrames.

1. Truncation in Python Using NumPy

NumPy offers a simple, built-in function called trunc which allows you to truncate values to the nearest whole number.

The trunc function eliminates the fractional part of the input, returning only the integer.

import numpy as np

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

Output:

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

Here are some key points about the trunc function:

  • It works element-wise, meaning it can truncate each element in an array or a list.

  • The data type (dtype) of the output array will be the same as the input array.

  • The function can be applied to different data structures, such as , tuples, or arrays, as long as the elements are numeric.

2. Using DataFrame and Loc for Truncation in Python

Pandas DataFrame is a powerful, flexible data structure for handling large, structured datasets. You can use the DataFrame.truncate() function to truncate a DataFrame based on the index.

To see a practical demonstration of how to load datasets in Python, watch this YouTube video:

Alternatively, you can use the loc property to filter rows or columns based on a specific condition.

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)

Output:

       A      B
1  5.678  8.901
2  9.012  2.345

Using loc and a condition, we can achieve truncation based on values as well:

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

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

Output:

       A      B
0  1.234  4.567
1  5.678  8.901

In this example, a boolean condition was used to filter out rows in the DataFrame. Depending on your use case, you can apply different conditions and operations using loc.

Let’s now look at the practical applications of truncation in Python.

3 Practical Applications of Truncation in Python

Understanding the concept of truncation in Python and its corresponding techniques is only half of the equation. The other half involves applying this knowledge effectively in practical scenarios.

In this section, we transition from theory to practice, illustrating how truncation can be used to optimize Python code in real-world applications.

Truncation is useful in various applications, some of which are:

1. Financial calculations: When working with currencies, it’s common to truncate decimal values to represent actual money where only cents are considered, and smaller units aren’t relevant.

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

Output:

49.98

2. Data aggregation: Truncation can also be used to aggregate data as per a specific criterion. For example, aggregating the mean value of daily temperature readings based on integer values.

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)

Output:

23.142857142857142

3. Ordering elements: Sometimes, elements need to be ordered based on a specific truncation rule. This can be achieved by using the key parameter in Python’s sorted() function.

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)

Output:

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

These real-world applications of truncation show invaluable it is across various fields, such as data analysis and machine learning.

Yet, an important question arises: how do truncation techniques compare, and which method should you use for a given scenario? To answer this, our next section will dive into a comparative analysis of the various truncation methods we have discussed.

Comparing Truncation Methods in Python

To compare the different truncation methods in terms of performance and precision, let’s consider a large dataset and measure the execution time for each approach.

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")

In this example, a dataset of one million random floating-point values between 0 and 1000 is generated. The execution time for each truncation method is measured using the time module. The decimal module approach converts each number to a Decimal instance before truncating to ensure accurate results.

By running the code, you can observe the execution times for each method and make a performance comparison.

Choosing the Appropriate Truncation Method

When it comes to truncating floating-point values in Python, choosing the appropriate method depends on the specific requirements of the application or use case.

Consider the following factors when deciding which method to use:

  • Precision: If precision is of utmost importance and you need fine control over decimal places, the decimal module provides the highest level of accuracy.

  • Performance: For simple truncation without the need for high precision, the int() function and math.trunc() function offer efficient solutions.

  • Rounding behavior: Depending on the desired rounding behavior, the decimal module allows you to specify various rounding modes, such as ROUND_DOWN, ROUND_UP, ROUND_HALF_UP, and more.

  • Compatibility: If you need to ensure compatibility with legacy code or systems that do not support the decimal module, the int() function or math.trunc function can be viable options.

Final Thoughts

Truncate Float i Python: Forklaret med eksempler

Understanding the basics of truncating float values in Python is essential for accurate data manipulation and analysis. Python provides various methods and functions to truncate or round floating-point numbers based on specific requirements.

By using the built-in functions like math.trunc(), math.floor(), and math.ceil(), we can perform truncation operations effectively. These functions offer flexibility in handling positive and negative float values, allowing us to control the desired outcome.

Furthermore, the decimal module offers better control over rounding and precision, making it suitable for financial calculations or situations where accuracy is paramount.

As with any programming concept, practice and experimentation are key to mastering the art of truncating float values. Go ahead and apply these techniques in real-world scenarios and explore additional resources, such as Python documentation and community forums, to enhance your understanding and proficiency!


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.