Truncate Float v Pythonu: Vysvětleno s příklady

Zkrácení čísla s plovoucí desetinnou čárkou je běžná operace, se kterou se mnoho programátorů setkává v různých aplikacích. Proces zahrnuje odstranění desetinného místa s plovoucí čárkou a ponechání pouze celé části. Je to cenná technika pro zjednodušení výpočtů, zlepšení čitelnosti výstupu a snížení potenciálních chyb zaokrouhlování.

Ke zkrácení plovoucích hodnot v Pythonu můžete použít funkci math.trunc(), dekadický modul nebo manipulaci s řetězci. Pomocí těchto technik mohou vývojáři Pythonu přizpůsobit proces zkrácení svým specifickým požadavkům s flexibilitou a přesností.

Truncate Float v Pythonu: Vysvětleno s příklady

V tomto článku prozkoumáme, jak lze zkrácení použít v . Ponoříme se do různých praktických příkladů a představíme komplexní pohled na to, jak využít tuto techniku ​​pro maximální efekt.

Začněme tím, že se podíváme na základní koncepty a techniky pro zkracování řetězců, čísel a datových struktur v Pythonu.

Obsah

Základy Python Truncate

V této části se budeme zabývat definicí zkracování, podíváme se na funkce Pythonu pro zkracování a naučíme se, jak zkracovat desetinná místa a plovoucí desetinná místa.

1. Definice Truncate v Pythonu

Truncate je proces zkrácení čísla odstraněním desetinného místa. Je to důležitý koncept v informatice a matematice a používá se k redukci číslic na jednodušší formu, aniž by se změnila jejich hodnota.

2. Jak používat funkci Python Truncate

Existuje několik způsobů, jak zkrátit absolutní hodnoty v Pythonu. Jednou z běžných metod, jak dosáhnout zkrácení, je použití funkce math.trunc() , která přímo odstraňuje desetinná místa z binární hodnoty s pohyblivou řádovou čárkou.

Zde je příklad:

import math

float1 = 123.356
float2 = -2434.545

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

Výstup:

123
-2434

Tato metoda dává podobné výsledky jako funkce int() , která také zkrátí dané číslo odstraněním desetinných míst.

Truncate Float v Pythonu: Vysvětleno s příklady

3. Jak zkrátit desetinná místa a plovoucí čísla v Pythonu

V některých případech můžete být požádáni o zkrácení floatu na určitý počet desetinných míst. K zaokrouhlení čísel lze v takových případech použít funkci round () . Mějte však na paměti, že funkce round() číslo pouze zaokrouhlí, nikoli zkrátí.

Pokud chcete provést zkrácení na konkrétní desetinnou čárku, můžete použít následující postup:

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)

Výstup:

3.14

Ve výše uvedeném příkladu má funkce truncate_float() dva parametry — číslo s plovoucí desetinnou čárkou, které má být zkráceno, a požadovaný počet desetinných míst.

Pomocí násobiče nejprve posune desetinnou čárku s plovoucí čárkou, poté převede výsledek na celé číslo (účinně zkrátí číslo) a nakonec celé číslo vydělí násobitelem, aby se desetinná čárka vrátila do původní polohy.

Mějte na paměti, že práce s plovoucí desetinnou čárkou v Pythonu může vést k určité nepřesnosti ve výpočtech kvůli povaze aritmetiky s plovoucí desetinnou čárkou. Proto, když je přesnost a přesnost rozhodující, zvažte použití desetinného modulu.

Dobře, to jsou základy toho, jak zkrátit hodnoty v Pythonu. V další části se podíváme na to, jak můžete zkrátit hodnoty pomocí matematické knihovny a dalších funkcí Pythonu.

Zkrácení v Pythonu pomocí matematické knihovny a funkcí

V oblasti programování v Pythonu je optimalizace často klíčová. Použití 'matematické' knihovny Pythonu a jejích vestavěných funkcí může výrazně zlepšit výkon, zejména při práci s velkými datovými sadami nebo složitými výpočty.

Tato část je věnována zkoumání toho, jak můžeme využít 'matematickou' knihovnu a její robustní funkce pro úlohy zkrácení – efektivní snížení nebo omezení velikosti dat – v Pythonu.

1. math.trunc()

Matematická knihovna Pythonu poskytuje několik funkcí pro práci s hodnotami float, jednou z nich je math.trunc() . Tato funkce vrací zkrácenou hodnotu daného floatu, efektivně odstraňuje jeho zlomkovou část a ponechá pouze celočíselnou část.

Zde je příklad použití math.trunc() :

import math

number = 3.7
truncated_number = math.trunc(number)

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

Výstup:

3
3.7

math.trunc() zaokrouhlí číslo směrem k nule. Pro kladná čísla to funguje jako funkce podlahy a pro záporná čísla jako funkce stropu.

Truncate Float v Pythonu: Vysvětleno s příklady

2. math.floor() a math.ceil()

Kromě math.trunc() poskytuje matematická knihovna také funkce pro zaokrouhlování čísel různými způsoby, jako jsou funkce math.floor() a math.ceil() .

Funkce math.floor () zaokrouhlí hodnoty s pohyblivou řádovou čárkou dolů na nejbližší celé číslo, zatímco math.ceil() zaokrouhlí nahoru na nejbližší celé číslo.

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) 

Výstup:

Floor of x: 3
Floor of y: 9

Zde je ilustrace funkce math.floor().

Truncate Float v Pythonu: Vysvětleno s příklady

Tento fragment kódu ukazuje použití funkce 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) 

Výstup:

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

3. Převod plovoucí hodnoty pomocí int()

Dalším způsobem, jak zkrátit plovoucí hodnotu, je použití vestavěné funkce int() . Při předání s plovoucí čárkou jej převede na celé číslo oříznutím desetinné části.

Tento přístup může být výhodnější pro jednoduché případy zkrácení, protože nevyžaduje import matematické knihovny.

float5 = 7.65
float6 = -3.14

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

Výstup:

7
-3

Je však důležité si uvědomit, že funkce int() není ekvivalentní funkcím math.floor() nebo math.ceil() , protože pouze zkracuje číslo bez ohledu na jeho znaménko.

Zde je ilustrace výše uvedené funkce int() pro plovoucí zkrácení v editoru kódu;

Truncate Float v Pythonu: Vysvětleno s příklady

Stručně řečeno, matematická knihovna Pythonu nabízí několik funkcí pro práci s hodnotami s plovoucí desetinnou čárkou, včetně zkracování, zaokrouhlování dolů a zaokrouhlování nahoru. Matematická knihovna je základním nástrojem, na který se můžete spolehnout, když potřebujete provádět pokročilé matematické operace.

Zatímco funkce int() a math.trunc() nabízejí jednoduché způsoby, jak zkrátit hodnoty s plovoucí desetinnou čárkou, modul desítkové soustavy poskytuje výkonnější a přesnější přístup, takže to prozkoumáme v další části.

Jak zkrátit hodnoty v Pythonu pomocí modulu Decimal

„Desetinný“ modul Pythonu je výkonný nástroj, který nabízí přesné zpracování desetinných čísel, což je funkce, která se hodí zvláště v případě, že je potřeba zkrácení.

Tato část se ponoří do praktických aplikací tohoto modulu pro zkrácení hodnot v Pythonu. Prozkoumáme příklady krok za krokem a poskytneme hloubkové porozumění konceptům této efektivní a přesné techniky manipulace s daty.

1. Použití metody kvantifikace

Metoda kvantizace třídy Decimal je všestranným nástrojem pro ořezávání desítkových instancí. Tato metoda umožňuje vývojářům nastavit požadovanou přesnost a režim zaokrouhlování, což zajišťuje přesné zkrácení.

Zvažte následující příklad:

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

Výstup:

3

V tomto příkladu je metoda kvantizace aplikována na číslo instance Decimal s přesností na jedno desetinné místo a režim zaokrouhlení ROUND_DOWN , který efektivně zkrátí hodnotu.

2. Pomocí metody to_integral_value

Další užitečnou metodou poskytovanou třídou Decimal je to_integral_value . Tato metoda vrací nejbližší celé číslo k dané desetinné hodnotě a efektivně ořezává desetinná místa.

Metoda to_integral_value umožňuje vývojářům určit také režim zaokrouhlování.

Zde je příklad:

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

Výstup:

3

V tomto příkladu je metoda to_integral_value použita s režimem zaokrouhlení ROUND_DOWN , což vede ke zkrácení.

3. Použití metody normalizace

Metoda normalizace třídy Decimal poskytuje způsob, jak upravit exponent a měřítko desítkové instance. Pomocí této metody mohou vývojáři efektivně zkrátit desetinná místa.

Zvažte následující příklad:

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

Výstup:

3.14159

V tomto příkladu je metoda normalizace použita na číslo instance Decimal , výsledkem je stejná hodnota bez desetinných míst.

Dále se podíváme na způsoby, jak můžete zkrátit řetězce a seznamy v Pythonu.

Techniky zkrácení pro řetězce a seznamy v Pythonu

V této části probereme různé techniky pro zkracování řetězců a seznamů ve funkcích Pythonu. Probereme následující podsekce: techniky zkrácení řetězce a zkrácení seznamu .

1. Techniky zkracování strun

Existuje několik způsobů, jak zkrátit a v Pythonu, včetně použití str.format , slicing a f-strings .

1) Použití str.format : Tato metoda umožňuje zkrátit řetězec zadáním hodnoty přesnosti. Například:

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

Výstup:

aaabb

2) Použití krájení : Pomocí zápisu řezu můžete vybrat podřetězec původního řetězce. Například:

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

Výstup:

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 , 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

Pomocí loc a podmínky můžeme dosáhnout zkrácení také na základě hodnot:

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

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

Výstup:

       A      B
0  1.234  4.567
1  5.678  8.901

V tomto příkladu byla k odfiltrování řádků v DataFrame použita booleovská podmínka. V závislosti na vašem případu použití můžete použít různé podmínky a operace pomocí loc .

Podívejme se nyní na praktické aplikace zkrácení v Pythonu.

3 Praktické aplikace zkrácení v Pythonu

Pochopení konceptu zkrácení v Pythonu a jeho odpovídajících technik je jen polovina rovnice. Druhá polovina zahrnuje efektivní aplikaci těchto znalostí v praktických scénářích.

V této části přejdeme od teorie k praxi a ukážeme, jak lze zkrácení použít k optimalizaci kódu Pythonu v aplikacích v reálném světě.

Zkrácení je užitečné v různých aplikacích, z nichž některé jsou:

1. Finanční výpočty : Při práci s měnami je běžné zkracovat desetinné hodnoty tak, aby představovaly skutečné peníze, kde se berou v úvahu pouze centy a menší jednotky nejsou relevantní.

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

Výstup:

49.98

2. Agregace dat : Zkrácení lze také použít k agregaci dat podle konkrétního kritéria. Například agregace střední hodnoty denních teplotních hodnot na základě celočíselných hodnot.

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)

Výstup:

23.142857142857142

3. Řazení prvků : Někdy je nutné prvky seřadit na základě konkrétního pravidla zkrácení. Toho lze dosáhnout pomocí parametru key ve funkci sort() Pythonu .

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)

Výstup:

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

Tyto reálné aplikace zkrácení ukazují, že je neocenitelné v různých oblastech, jako je analýza dat a strojové učení.

Přesto vyvstává důležitá otázka: jak se srovnávají techniky zkrácení a jakou metodu byste měli pro daný scénář použít? Abychom na to odpověděli, naše další část se ponoří do srovnávací analýzy různých metod zkrácení, o kterých jsme diskutovali.

Porovnání metod zkrácení v Pythonu

Abychom porovnali různé metody zkrácení z hlediska výkonu a přesnosti, uvažujme velký soubor dat a změřme dobu provádění pro každý přístup.

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

V tomto příkladu je vygenerována datová sada jednoho milionu náhodných hodnot s plovoucí desetinnou čárkou mezi 0 a 1000. Doba provádění pro každou metodu zkrácení se měří pomocí časového modulu. Přístup pomocí desítkového modulu převádí každé číslo na desítkovou instanci před zkrácením, aby byly zajištěny přesné výsledky.

Spuštěním kódu můžete sledovat doby provádění pro každou metodu a provádět srovnání výkonu.

Výběr vhodné metody zkrácení

Pokud jde o zkrácení hodnot s plovoucí desetinnou čárkou v Pythonu, výběr vhodné metody závisí na konkrétních požadavcích aplikace nebo případu použití.

Při rozhodování, kterou metodu použít, zvažte následující faktory:

  • Přesnost: Pokud je přesnost nanejvýš důležitá a potřebujete jemnou kontrolu nad desetinnými místy, desetinný modul poskytuje nejvyšší úroveň přesnosti.

  • Výkon: Funkce int() a math.trunc() nabízejí efektivní řešení pro jednoduché zkrácení bez potřeby vysoké přesnosti .

  • Chování zaokrouhlování: V závislosti na požadovaném chování zaokrouhlování vám desetinný modul umožňuje určit různé režimy zaokrouhlování, jako je ROUND_DOWN , ROUND_UP , ROUND_HALF_UP a další.

  • Kompatibilita: Pokud potřebujete zajistit kompatibilitu se starším kódem nebo systémy, které nepodporují desítkový modul, může být životaschopnou možností funkce int() nebo math.trunc .

Závěrečné myšlenky

Truncate Float v Pythonu: Vysvětleno s příklady

Pochopení základů zkrácení plovoucích hodnot v Pythonu je nezbytné pro přesnou manipulaci a analýzu dat. Python poskytuje různé metody a funkce pro zkrácení nebo zaokrouhlení čísel s plovoucí desetinnou čárkou na základě specifických požadavků.

Pomocí vestavěných funkcí jako math.trunc() , math.floor() a math.ceil() můžeme efektivně provádět operace zkrácení. Tyto funkce nabízejí flexibilitu při zpracování kladných a záporných plovoucích hodnot, což nám umožňuje kontrolovat požadovaný výsledek.

Kromě toho nabízí desítkový modul lepší kontrolu nad zaokrouhlováním a přesností, takže je vhodný pro finanční výpočty nebo situace, kde je přesnost prvořadá.

Jako u každého programovacího konceptu je klíčem k zvládnutí umění zkracovat plovoucí hodnoty praxe a experimentování. Pokračujte a aplikujte tyto techniky ve scénářích reálného světa a prozkoumejte další zdroje, jako je dokumentace Pythonu a komunitní fóra, abyste zlepšili své porozumění a odbornost!


Tabulky proporcí a četností v Excelu

Tabulky proporcí a četností v Excelu

Chtěli jsme se ponořit do tabulek četností v Excelu a také do tabulek proporcí. Podívejte se, co to je a kdy je použít.

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.

DAX měří v LuckyTemplates pomocí Measure Branching

DAX měří v LuckyTemplates pomocí Measure Branching

Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.

Najvýkonnejšie volanie funkcie v LuckyTemplates

Najvýkonnejšie volanie funkcie v LuckyTemplates

V tomto blogu preskúmajte množinu údajov LuckyTemplates, najvýkonnejšie volanie funkcií, ktoré vám prináša tisíce funkcií M a DAX na dosah ruky.

Techniky modelovania údajov na organizáciu opatrení DAX

Techniky modelovania údajov na organizáciu opatrení DAX

V dnešnom návode sa podelím o niekoľko techník modelovania údajov o tom, ako lepšie usporiadať vaše merania DAX pre efektívnejší pracovný tok.

LuckyTemplates Financial Dashboard: Kompletné tipy na prispôsobenie tabuľky

LuckyTemplates Financial Dashboard: Kompletné tipy na prispôsobenie tabuľky

LuckyTemplates je skvelý nástroj pre finančné výkazníctvo. Tu je návod, ako vytvoriť prispôsobené tabuľky pre váš finančný dashboard LuckyTemplates.

Osvedčené postupy toku jazyka Power Query

Osvedčené postupy toku jazyka Power Query

V tomto návode sa bude diskutovať o toku jazyka Power Query a o tom, ako môže pomôcť vytvoriť hladkú a efektívnu zostavu údajov.

LuckyTemplates vlastní ikony | Vizualizační technika PBI

LuckyTemplates vlastní ikony | Vizualizační technika PBI

Budu diskutovat o jedné z mých oblíbených technik kolem vlastních ikon LuckyTemplates, která používá vlastní ikony dynamickým způsobem ve vizuálech LuckyTemplates.