Truncare Float în Python: explicat cu exemple

Truncare Float în Python: explicat cu exemple

Trunchierea unui număr în virgulă mobilă în Python este o operație comună pe care o întâlnesc mulți programatori în diverse aplicații. Procesul implică eliminarea zecimalei unui float, lăsând doar partea întreagă. Este o tehnică valoroasă pentru simplificarea calculelor, îmbunătățirea lizibilității în ieșire și reducerea potențialelor erori de rotunjire.

Pentru a trunchia valorile float în Python, puteți utiliza funcția math.trunc(), modulul zecimal sau manipularea șirurilor. Folosind aceste tehnici, dezvoltatorii Python pot adapta procesul de trunchiere la cerințele lor specifice, cu flexibilitate și precizie.

Truncare Float în Python: explicat cu exemple

În acest articol, vom explora modul în care trunchierea poate fi aplicată în programarea Python pentru a crea cod mai eficient și mai eficient . Vom aprofunda în diverse exemple practice, prezentând o privire cuprinzătoare asupra modului de utilizare a acestei tehnici pentru un efect maxim.

Să începem prin a ne uita la conceptele și tehnicile fundamentale pentru trunchierea șirurilor, numerelor și structurilor de date în Python.

Cuprins

Python Truncate Elemente de bază

În această secțiune, vom acoperi definiția trunchierii, vom analiza funcțiile Python pentru trunchiere și vom învăța cum să trunchiem zecimale și flotanți.

1. Definiția trunchiului în Python

Trunchierea este un proces de scurtare a unui număr prin eliminarea zecimalei. Este un concept important în informatică și matematică și este folosit pentru a reduce cifrele la o formă mai simplă, fără a le modifica valoarea.

2. Cum să utilizați funcția Python Truncate

Există mai multe moduri de a trunchia valorile absolute în Python. O metodă comună pentru a obține trunchierea este utilizarea funcției math.trunc() , care elimină direct zecimale dintr-o valoare binară în virgulă mobilă.

Iată un exemplu:

import math

float1 = 123.356
float2 = -2434.545

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

Ieșire:

123
-2434

Această metodă dă rezultate similare cu funcția int() , care trunchiază și numărul dat prin eliminarea zecimalelor.

Truncare Float în Python: explicat cu exemple

3. Cum să trunchiați zecimale și flotanți în Python

În unele cazuri, vi se poate cere să trunchiați un float la un anumit număr de cifre zecimale. Funcția round() poate fi folosită pentru a rotunji numerele în astfel de cazuri. Cu toate acestea, vă rugăm să rețineți că funcția round() doar rotunjește numărul, mai degrabă decât să-l trunchieze.

Dacă doriți să trunchiați la un anumit punct zecimal, puteți utiliza următoarea abordare:

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)

Ieșire:

3.14

În exemplul de mai sus, funcția truncate_float() ia doi parametri — numărul float care trebuie trunchiat și numărul dorit de puncte zecimale.

Folosește un multiplicator pentru a deplasa mai întâi punctul zecimal al floatului, apoi convertește rezultatul într-un număr întreg (trunchiind efectiv numărul) și, în cele din urmă, împarte numărul întreg la multiplicator pentru a restabili punctul zecimal la poziția inițială.

Rețineți că lucrul cu flotanți în Python poate duce la o oarecare imprecizie în calcule din cauza naturii aritmeticii în virgulă mobilă. Prin urmare, atunci când acuratețea și precizia sunt cruciale, luați în considerare utilizarea modulului zecimal .

Bine, acestea sunt elementele de bază ale modului de trunchiere a valorilor în Python. În secțiunea următoare, vom arunca o privire la modul în care puteți trunchia valori folosind biblioteca de matematică și alte funcții Python.

Trunchierea în Python folosind biblioteca și funcțiile matematice

În domeniul programării Python, optimizarea este adesea esențială. Folosirea bibliotecii „matematice” a lui Python și a funcțiilor sale încorporate poate îmbunătăți semnificativ performanța, în special atunci când aveți de-a face cu seturi de date mari sau calcule complexe.

Această secțiune este dedicată explorării modului în care putem utiliza biblioteca „matematică” și funcționalitățile sale robuste pentru sarcinile de trunchiere — reducând sau limitând eficient dimensiunea datelor — în Python.

1. math.trunc()

Biblioteca matematică Python oferă mai multe funcții pentru a lucra cu valori flotante, dintre care una este math.trunc() . Această funcție returnează valoarea trunchiată a unui float dat, eliminând efectiv partea sa fracționară și lăsând doar partea întreagă.

Iată un exemplu de utilizare a math.trunc() :

import math

number = 3.7
truncated_number = math.trunc(number)

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

Ieșire:

3
3.7

math.trunc() rotunjește numărul la zero. Pentru numerele pozitive, funcționează ca funcția de podea, iar pentru numerele negative, funcționează ca funcția de plafon.

Truncare Float în Python: explicat cu exemple

2. math.floor() și math.ceil()

Pe lângă math.trunc() , biblioteca de matematică oferă și funcții pentru rotunjirea numerelor în moduri diferite, cum ar fi funcțiile math.floor() și math.ceil() .

Funcția math.floor() rotunjește în jos valorile în virgulă mobilă la cel mai apropiat număr întreg, în timp ce math.ceil() rotunjește în sus la cel mai apropiat număr întreg.

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) 

Ieșire:

Floor of x: 3
Floor of y: 9

Iată o ilustrare a funcției math.floor().

Truncare Float în Python: explicat cu exemple

Acest fragment de cod demonstrează utilizarea funcției 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) 

Ieșire:

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

3. Conversie de valoare flotantă folosind int()

O altă modalitate de a trunchia o valoare float este prin utilizarea funcției încorporate int() . Când este transmis într-un float, îl va converti într-un număr întreg prin trunchierea părții zecimale.

Această abordare poate fi mai convenabilă pentru cazurile simple de trunchiere, deoarece nu necesită importarea bibliotecii de matematică.

float5 = 7.65
float6 = -3.14

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

Ieșire:

7
-3

Cu toate acestea, este esențial să ne amintim că funcția int() nu este echivalentă cu math.floor() sau math.ceil() , deoarece trunchiază doar numărul fără a lua în considerare semnul acestuia.

Iată ilustrarea funcției int() de mai sus pentru o trunchiere flotantă într-un editor de cod;

Truncare Float în Python: explicat cu exemple

În rezumat, biblioteca de matematică Python oferă mai multe funcții pentru a lucra cu valori flotante, inclusiv trunchierea, rotunjirea în jos și rotunjirea în sus. Biblioteca de matematică este un instrument esențial pe care să vă bazați atunci când trebuie să efectuați operații matematice avansate.

În timp ce funcțiile int() și math.trunc() oferă modalități simple de trunchiere a valorilor în virgulă mobilă, modulul zecimal oferă o abordare mai puternică și mai precisă, așa că haideți să o explorăm în secțiunea următoare.

Cum se trunchiază valorile în Python cu modulul zecimal

Modulul „zecimal” al lui Python este un instrument puternic care oferă o manipulare precisă a numerelor zecimale, o caracteristică care este deosebit de utilă atunci când este necesară trunchierea.

This section dives into the practical applications of this module for truncating values in Python. We’ll explore step-by-step examples and provide an in-depth understanding of the concepts behind this effective and precise data manipulation technique.

1. Using the Quantize Method

The quantize method of the Decimal class is a versatile tool for truncating decimal instances. This method allows developers to set the desired precision and rounding mode, ensuring accurate truncation.

Consider the following example:

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

Output:

3

In this example, the quantize method is applied to the Decimal instance number with a precision of one decimal place and the ROUND_DOWN rounding mode, which effectively truncates the value.

2. Using the to_integral_value Method

Another useful method provided by the Decimal class is to_integral_value. This method returns the nearest integer to the given decimal value, effectively truncating the decimal places.

The to_integral_value method allows developers to specify the rounding mode as well.

Here’s an example:

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

Output:

3

In this example, the to_integral_value method is used with the ROUND_DOWN rounding mode, resulting in truncation.

3. Applying the Normalize Method

The normalize method of the Decimal class provides a way to adjust the exponent and scale of a decimal instance. By using this method, developers can effectively truncate the decimal places.

Consider the following example:

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

Output:

3.14159

In this example, the normalize method is applied to the Decimal instance number, resulting in the same value without any decimal places.

Next, let’s look at ways you can truncate strings and lists in Python.

Truncation Techniques for Strings and Lists in Python

In this section, we’ll discuss various techniques for truncating strings and lists in Python functions. We’ll cover the following sub-sections: string truncate techniques and list truncation.

1. String Truncate Techniques

There are multiple ways to truncate a string in Python, including the use of str.format, slicing, and f-strings.

1) Using str.format: This method allows you to truncate a string by specifying a precision value. For example:

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

Output:

aaabb

2) Using slicing: By using slice notation, you can select a substring of the original string. For example:

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

Output:

aaabb

3) Using f-strings: With f-strings, the truncation can be performed inline within the string. For example:

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

Output:

aaabb

2. List Truncation

There are several ways to truncate lists in Python, such as slicing and using list comprehensions.

1) Using slicing: Slicing allows you to select a range of elements in a list. For example:

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

Output:

[1, 2, 3, 4, 5]

2) Using list comprehensions: List comprehensions allow you to create a new list by iterating over an existing list and applying a condition or operation. For example, to truncate tuples in a list:

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

Output:

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

Now that we’ve covered the various techniques for truncating strings and lists using Python, let’s take a look at how you can do the same using libraries like NumPy and pandas.

How to Use NumPy and pandas to Truncate Values in 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 lists, 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. Calcule financiare : atunci când lucrați cu monede, este obișnuit să trunchiați valorile zecimale pentru a reprezenta banii efectivi, unde sunt luați în considerare doar cenți, iar unitățile mai mici nu sunt relevante.

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

Ieșire:

49.98

2. Agregarea datelor : trunchierea poate fi folosită și pentru a agrega date conform unui criteriu specific. De exemplu, agregarea valorii medii a citirilor zilnice de temperatură pe baza valorilor întregi.

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)

Ieșire:

23.142857142857142

3. Ordonarea elementelor : Uneori, elementele trebuie ordonate pe baza unei reguli specifice de trunchiere. Acest lucru poate fi realizat folosind parametrul cheie din funcția sorted() a lui Python .

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)

Ieșire:

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

Aceste aplicații reale ale trunchierii arată că este neprețuită în diferite domenii, cum ar fi analiza datelor și învățarea automată.

Cu toate acestea, apare o întrebare importantă: cum se compară tehnicile de trunchiere și ce metodă ar trebui să utilizați pentru un anumit scenariu? Pentru a răspunde la aceasta, următoarea noastră secțiune se va scufunda într-o analiză comparativă a diferitelor metode de trunchiere pe care le-am discutat.

Compararea metodelor de trunchiere în Python

Pentru a compara diferitele metode de trunchiere în termeni de performanță și precizie, să luăm în considerare un set mare de date și să măsurăm timpul de execuție pentru fiecare abordare.

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

În acest exemplu, este generat un set de date de un milion de valori aleatorii în virgulă mobilă între 0 și 1000. Timpul de execuție pentru fiecare metodă de trunchiere este măsurat folosind modulul de timp. Abordarea modulului zecimal convertește fiecare număr într-o instanță Decimal înainte de trunchiere pentru a asigura rezultate precise.

Prin rularea codului, puteți observa timpii de execuție pentru fiecare metodă și puteți face o comparație de performanță.

Alegerea metodei de trunchiere adecvată

Când vine vorba de trunchierea valorilor în virgulă mobilă în Python, alegerea metodei adecvate depinde de cerințele specifice ale aplicației sau ale cazului de utilizare.

Luați în considerare următorii factori atunci când decideți ce metodă să utilizați:

  • Precizie: Dacă precizia este de cea mai mare importanță și aveți nevoie de un control fin asupra zecimalelor, modulul zecimal oferă cel mai înalt nivel de precizie.

  • Performanță: Pentru trunchierea simplă fără a fi nevoie de precizie ridicată, funcția int() și funcția math.trunc() oferă soluții eficiente.

  • Comportamentul de rotunjire: în funcție de comportamentul de rotunjire dorit, modulul zecimal vă permite să specificați diferite moduri de rotunjire, cum ar fi ROUND_DOWN , ROUND_UP , ROUND_HALF_UP și altele.

  • Compatibilitate: Dacă trebuie să vă asigurați compatibilitatea cu codul moștenit sau cu sistemele care nu acceptă modulul zecimal, funcția int() sau funcția math.trunc pot fi opțiuni viabile.

Gânduri finale

Truncare Float în Python: explicat cu exemple

Înțelegerea elementelor de bază ale trunchierii valorilor float în Python este esențială pentru manipularea și analiza precisă a datelor. Python oferă diverse metode și funcții pentru a trunchia sau rotunji numerele în virgulă mobilă în funcție de cerințe specifice.

Folosind funcțiile încorporate precum math.trunc() , math.floor() și math.ceil() , putem efectua operațiuni de trunchiere eficient. Aceste funcții oferă flexibilitate în gestionarea valorilor flotante pozitive și negative, permițându-ne să controlăm rezultatul dorit.

În plus, modulul zecimal oferă un control mai bun asupra rotunjirii și preciziei, făcându-l potrivit pentru calcule financiare sau situații în care acuratețea este primordială.

Ca și în cazul oricărui concept de programare, practica și experimentarea sunt cheia pentru a stăpâni arta trunchierii valorilor float. Continuați și aplicați aceste tehnici în scenarii din lumea reală și explorați resurse suplimentare, cum ar fi documentația Python și forumurile comunitare, pentru a vă îmbunătăți înțelegerea și competența!


Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți