Csonka lebegés Pythonban: Példákkal magyarázva

A lebegőpontos szám csonkolása gyakori művelet, amellyel sok programozó találkozik különböző alkalmazásokban. A folyamat magában foglalja az úszó tizedesjegyének eltávolítását, és csak az egész részt hagyja meg. Ez egy értékes technika a számítások egyszerűsítésére, a kimenet olvashatóságának javítására és a lehetséges kerekítési hibák csökkentésére.

A lebegőértékek Pythonban való csonkolásához használhatja a math.trunc() függvényt, decimális modult vagy karakterlánc-manipulációt. Ezekkel a technikákkal a Python fejlesztői rugalmasan és pontosan szabhatják a csonkolási folyamatot sajátos követelményeikhez.

Csonka lebegés Pythonban: Példákkal magyarázva

Ebben a cikkben megvizsgáljuk, hogyan alkalmazható a csonkítás a . Különböző gyakorlati példákba ásunk bele, átfogó képet adva arról, hogyan alkalmazzuk ezt a technikát a maximális hatás érdekében.

Kezdjük azzal, hogy megvizsgáljuk a karakterláncok, számok és adatstruktúrák Pythonban való csonkolásának alapvető fogalmait és technikáit.

Tartalomjegyzék

A Python Truncate alapjai

Ebben a részben foglalkozunk a csonkítás definíciójával, megnézzük a Python-függvényeket a csonkoláshoz, és megtanuljuk, hogyan kell csonkolni a tizedesjegyeket és a lebegéseket.

1. A csonka definíciója Pythonban

A csonkítás egy szám rövidítése a tizedesjegy törlésével. Ez egy fontos fogalom az informatikában és a matematikában, és arra használják, hogy a számjegyeket egyszerűbb formára redukálják anélkül, hogy megváltoztatnák az értéküket.

2. A Python Truncate függvény használata

Számos módja van az abszolút értékek csonkolásának a Pythonban. A csonkítás egyik általános módja a math.trunc() függvény használata , amely közvetlenül eltávolítja a tizedesjegyeket a bináris lebegőpontos értékből.

Íme egy példa:

import math

float1 = 123.356
float2 = -2434.545

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

Kimenet:

123
-2434

Ez a módszer hasonló eredményeket ad, mint az int() függvény, amely a tizedesjegyek eltávolításával szintén csonkolja az adott számot.

Csonka lebegés Pythonban: Példákkal magyarázva

3. A tizedeshelyek és a lebegés csonkolása Pythonban

Egyes esetekben előfordulhat, hogy a lebegőpontot meghatározott számú tizedesjegyre kell csonkolnia. A round() függvénnyel ilyen esetekben kerekíthetjük a számokat. Ne feledje azonban, hogy a round() függvény csak kerekíti a számot, nem pedig csonkolja.

Ha egy adott tizedesvesszőre szeretne csonkolni, a következő megközelítést használhatja:

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)

Kimenet:

3.14

A fenti példában a truncate_float() függvény két paramétert vesz fel – a csonkolandó lebegőpontszámot és a kívánt számú tizedesvesszőt.

Egy szorzó segítségével először eltolja a lebegőpont tizedesvesszőjét, majd az eredményt egész számmá alakítja (effektíve csonkolja a számot), végül elosztja az egész számot a szorzóval, hogy visszaállítsa a tizedesvesszőt az eredeti helyére.

Ne feledje, hogy a lebegőpontos aritmetika a lebegőpontos aritmetika természetéből adódóan némi pontatlansághoz vezethet a számításokban a Pythonban. Ezért, ha a pontosság és precizitás döntő fontosságú, fontolja meg a decimális modul használatát.

Rendben, ezek az értékek Pythonban való csonkolásának alapjai. A következő részben megvizsgáljuk, hogyan csonkolhat le értékeket a matematikai könyvtár és más Python-függvények használatával.

Csonkolás Pythonban matematikai könyvtár és függvények használatával

A Python programozás területén az optimalizálás gyakran kulcsfontosságú. A Python „matematikai” könyvtárának és beépített funkcióinak használata jelentősen javíthatja a teljesítményt, különösen nagy adathalmazok vagy összetett számítások esetén.

Ez a rész annak feltárására szolgál, hogyan használhatjuk fel a „matematikai” könyvtárat és annak robusztus funkcióit csonkítási feladatokhoz – az adatméret hatékony csökkentésére vagy korlátozására – Pythonban.

1. math.trunc()

A Python matematikai könyvtár számos függvényt biztosít a lebegő értékekkel való munkavégzéshez, ezek közül az egyik a math.trunc() . Ez a függvény egy adott float csonkolt értékét adja vissza, gyakorlatilag eltávolítja annak tört részét, és csak az egész részt hagyja meg.

Íme egy példa a math.trunc() használatára :

import math

number = 3.7
truncated_number = math.trunc(number)

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

Kimenet:

3
3.7

A math.trunc() a számot nulla felé kerekíti. Pozitív számok esetén úgy működik, mint a padlófüggvény, negatív számoknál pedig a mennyezeti függvény.

Csonka lebegés Pythonban: Példákkal magyarázva

2. math.floor() és math.ceil()

A math.trunc() mellett a matematikai könyvtár funkciókat is biztosít számok különböző módon történő kerekítéséhez, például a math.floor() és a math.ceil() függvényeket.

A math.floor() függvény lefelé kerekíti a lebegőpontos értékeket a legközelebbi egész számra, míg a math.ceil() függvény a legközelebbi egész számra kerekíti felfelé.

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) 

Kimenet:

Floor of x: 3
Floor of y: 9

Íme a math.floor() függvény illusztrációja

Csonka lebegés Pythonban: Példákkal magyarázva

Ez a kódrészlet a math.ceil() függvény használatát mutatja be :

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) 

Kimenet:

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

3. Lebegő értékű konverzió az int() segítségével

A lebegőértékek csonkolásának másik módja a beépített int() függvény használata. A lebegőpontos átadáskor a decimális rész csonkolásával egész számmá alakítja.

Ez a megközelítés kényelmesebb lehet egyszerű csonkítási esetekben, mivel nem igényli a matematikai könyvtár importálását.

float5 = 7.65
float6 = -3.14

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

Kimenet:

7
-3

Fontos azonban megjegyezni, hogy az int() függvény nem ekvivalens a math.floor() vagy a math.ceil() függvényekkel , mivel csak a számot csonkolja anélkül, hogy figyelembe venné az előjelét.

Íme a fenti int() függvény illusztrációja a lebegő csonkoláshoz egy kódszerkesztőben;

Csonka lebegés Pythonban: Példákkal magyarázva

Összefoglalva, a Python matematikai könyvtár számos funkciót kínál a lebegőértékekkel való munkavégzéshez, beleértve a csonkítást, a lefelé és a felfelé kerekítést. A matematikai könyvtár alapvető eszköz, amelyre támaszkodhat, ha fejlett matematikai műveleteket kell végrehajtania.

Míg az int() és a math.trunc() függvények egyszerű módokat kínálnak a lebegőpontos értékek csonkolására, a decimális modul hatékonyabb és pontosabb megközelítést biztosít, ezért a következő részben ezt vizsgáljuk meg.

Az értékek csonkolása Pythonban a decimális modullal

A Python „tizedes” modulja egy hatékony eszköz, amely a decimális számok precíz kezelését kínálja. Ez a funkció különösen hasznos, ha csonkolásra van szükség.

Ez a rész a modul gyakorlati alkalmazásaival foglalkozik az értékek csonkolására Pythonban. Lépésről lépésre feltárunk példákat, és mélyrehatóan megértjük a hatékony és precíz adatkezelési technika mögött rejlő fogalmakat.

1. A kvantálási módszer használata

A Decimal osztály kvantálási módszere sokoldalú eszköz a decimális példányok csonkolására. Ezzel a módszerrel a fejlesztők beállíthatják a kívánt precíziós és kerekítési módot, biztosítva a pontos csonkítást.

Tekintsük a következő példát:

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

Kimenet:

3

Ebben a példában a kvantálási módszert egy tizedesjegy pontossággal alkalmazzuk a decimális példányszámra és a ROUND_DOWN kerekítési módra, amely hatékonyan csonkolja az értéket .

2. A to_integral_value Method használatával

A Decimális osztály által biztosított másik hasznos módszer a to_integral_value . Ez a módszer az adott tizedesjegyhez legközelebbi egész számot adja vissza, hatékonyan csonkolva a tizedesjegyeket.

A to_integral_value metódus lehetővé teszi a fejlesztők számára a kerekítési mód megadását is.

Íme egy példa:

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

Kimenet:

3

Ebben a példában a to_integral_value metódust használjuk a ROUND_DOWN kerekítési móddal, ami csonkolást eredményez.

3. A normalizálási módszer alkalmazása

A decimális osztály normalizálási metódusa lehetőséget biztosít a decimális példány kitevőjének és léptékének beállítására. Ezzel a módszerrel a fejlesztők hatékonyan csonkolhatják a tizedesjegyeket.

Tekintsük a következő példát:

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

Kimenet:

3.14159

Ebben a példában a normalizálási módszert alkalmazzuk a Tizedesjegy példányszámra , ami ugyanazt az értéket eredményezi tizedesjegyek nélkül.

Ezután nézzük meg, hogyan csonkolhatja le a karakterláncokat és listákat a Pythonban.

Csonkolási technikák karakterláncokhoz és listákhoz Pythonban

Ebben a részben a Python-függvényekben a karakterláncok és listák csonkolásának különféle technikáit tárgyaljuk. A következő alszakaszokkal foglalkozunk: karakterlánc-csonkítási technikák és listacsonkítás .

1. Húrcsonkítási technikák

A Pythonban többféleképpen is le lehet vágni, beleértve az str.format , a szeletelés és az f-stringek használatát .

1) Str.format használata : Ezzel a módszerrel precíziós érték megadásával levághat egy karakterláncot. Például:

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

Kimenet:

aaabb

2) Szeletelés használata : A szelet jelöléssel kiválaszthatja az eredeti karakterlánc egy részkarakterláncát. Például:

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

Kimenet:

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

A loc és egy feltétel használatával értékek alapján is csonkolhatunk:

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

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

Kimenet:

       A      B
0  1.234  4.567
1  5.678  8.901

Ebben a példában logikai feltételt használtunk a DataFrame sorainak kiszűrésére. A használati esettől függően különböző feltételeket és műveleteket alkalmazhat a loc használatával .

Nézzük most a csonkítás gyakorlati alkalmazásait Pythonban.

3 A csonkítás gyakorlati alkalmazásai Pythonban

A csonkítás fogalmának megértése a Pythonban és a megfelelő technikákban csak a fele az egyenletnek. A másik fele ennek a tudásnak a gyakorlati forgatókönyvekben való hatékony alkalmazása.

Ebben a részben áttérünk az elméletről a gyakorlatra, bemutatva, hogyan használható a csonkítás a Python-kód optimalizálására valós alkalmazásokban.

A csonkítás különféle alkalmazásokban hasznos, ezek közül néhány:

1. Pénzügyi számítások : A pénznemekkel végzett munka során gyakori, hogy a tizedes értékeket csonkolják a tényleges pénz megjelenítéséhez, ahol csak a centeket veszik figyelembe, és a kisebb mértékegységek nem relevánsak.

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

Kimenet:

49.98

2. Adatok összesítése : A csonkolást az adatok meghatározott kritériumok szerinti összesítésére is fel lehet használni. Például a napi hőmérsékleti értékek átlagértékének összesítése egész értékek alapján.

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)

Kimenet:

23.142857142857142

3. Elemek rendezése : Néha az elemeket egy adott csonkítási szabály alapján kell rendezni. Ez a Python sorted() függvényében a kulcsparaméter használatával érhető el .

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)

Kimenet:

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

A csonkításnak ezek a valós alkalmazásai felbecsülhetetlen értékűek a különböző területeken, például az adatelemzésben és a gépi tanulásban.

Mégis felmerül egy fontos kérdés: hogyan viszonyulnak a csonkolási technikák, és melyik módszert érdemes használni egy adott forgatókönyv esetén? Ennek megválaszolásához a következő szakaszunk az általunk tárgyalt különböző csonkolási módszerek összehasonlító elemzésébe merül.

A csonkítási módszerek összehasonlítása a Pythonban

A különböző csonkolási módszerek teljesítmény és pontosság összehasonlításához tekintsünk egy nagy adatkészletet, és mérjük meg az egyes megközelítések végrehajtási idejét.

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

Ebben a példában egy millió véletlenszerű lebegőpontos értékből álló adatkészletet generálunk 0 és 1000 között. Az egyes csonkolási módszerek végrehajtási idejét az időmodul segítségével mérjük. A decimális modul megközelítés minden számot decimális példánylá alakít a csonkítás előtt a pontos eredmények biztosítása érdekében.

A kód futtatásával megfigyelheti az egyes módszerek végrehajtási idejét, és összehasonlíthatja a teljesítményt.

A megfelelő csonkítási módszer kiválasztása

A Pythonban a lebegőpontos értékek csonkolása esetén a megfelelő módszer kiválasztása az alkalmazás vagy a használati eset speciális követelményeitől függ.

Vegye figyelembe a következő tényezőket, amikor eldönti, melyik módszert használja:

  • Pontosság: Ha a precizitás rendkívül fontos, és a tizedesjegyek pontos szabályozására van szüksége, a decimális modul biztosítja a legmagasabb szintű pontosságot.

  • Teljesítmény: A nagy pontosság igénye nélküli egyszerű csonkoláshoz az int() függvény és a math.trunc() függvény hatékony megoldásokat kínál.

  • Kerekítési viselkedés: A kívánt kerekítési viselkedéstől függően a decimális modul különböző kerekítési módok megadását teszi lehetővé, például ROUND_DOWN , ROUND_UP , ROUND_HALF_UP stb.

  • Kompatibilitás: Ha biztosítani kell a kompatibilitást a régi kóddal vagy a decimális modult nem támogató rendszerekkel, akkor az int() függvény vagy a math.trunc függvény használható opciók lehetnek.

Végső gondolatok

Csonka lebegés Pythonban: Példákkal magyarázva

A Pythonban a lebegőértékek csonkolásának alapjainak megértése elengedhetetlen a pontos adatkezeléshez és elemzéshez. A Python különféle módszereket és függvényeket biztosít a lebegőpontos számok csonkolására vagy kerekítésére, speciális követelmények alapján.

Az olyan beépített függvények használatával, mint a math.trunc() , math.floor() és math.ceil() , hatékonyan tudjuk végrehajtani a csonkítási műveleteket. Ezek a funkciók rugalmasságot kínálnak a pozitív és negatív lebegőértékek kezelésében, lehetővé téve számunkra a kívánt eredmény szabályozását.

Ezenkívül a decimális modul jobb szabályozást tesz lehetővé a kerekítés és a pontosság felett, így alkalmas pénzügyi számításokhoz vagy olyan helyzetekhez, ahol a pontosság a legfontosabb.

Mint minden programozási koncepciónál, a gyakorlás és a kísérletezés kulcsfontosságú a lebegőértékek csonkolásának művészetének elsajátításához. Alkalmazza ezeket a technikákat valós forgatókönyvekben, és fedezze fel a további forrásokat, például a Python-dokumentációt és a közösségi fórumokat, hogy javítsa megértését és jártasságát!


Arány- és gyakorisági táblázatok Excelben

Arány- és gyakorisági táblázatok Excelben

Az Excel gyakorisági táblázataiban, valamint az aránytáblázatokban készültek. Nos, nézze meg, mik ezek, és mikor kell használni őket.

A DAX Studio és a Tabular Editor telepítése a LuckyTemplates alkalmazásban

A DAX Studio és a Tabular Editor telepítése a LuckyTemplates alkalmazásban

Ismerje meg, hogyan töltheti le és telepítheti a DAX Studio és a Tabular Editor 3 alkalmazást, és hogyan konfigurálhatja őket a LuckyTemplates és az Excel programban való használatra.

LuckyTemplates alakzattérkép-vizualizáció a térbeli elemzéshez

LuckyTemplates alakzattérkép-vizualizáció a térbeli elemzéshez

Ez a blog tartalmazza a Shape Map vizualizációt a LuckyTemplates térbeli elemzéséhez. Megmutatom, hogyan használhatja hatékonyan ezt a vizualizációt annak funkcióival és elemeivel.

LuckyTemplates pénzügyi jelentések: az eredmények hozzárendelése a sablonokhoz minden egyes sorban

LuckyTemplates pénzügyi jelentések: az eredmények hozzárendelése a sablonokhoz minden egyes sorban

Ebben az oktatóanyagban egy egyedülálló ötletet mutatok be a pénzügyi jelentésekkel kapcsolatban, amely az eredmények hozzárendelését jelenti a LuckyTemplates-en belüli táblázatsablonok előre meghatározásához.

DAX-mértékek a LuckyTemplates-ben mértékelágazás használatával

DAX-mértékek a LuckyTemplates-ben mértékelágazás használatával

Hozzon létre DAX-mértékeket a LuckyTemplates alkalmazásban meglévő mértékek vagy képletek használatával. Ezt nevezem mértékelágazási technikának.

A legerősebb funkcióhívás a LuckyTemplatesben

A legerősebb funkcióhívás a LuckyTemplatesben

Ebben a blogban fedezze fel a LuckyTemplates adatkészletet, a leghatékonyabb függvényhívást, amely M- és DAX-függvények ezreit juttatja a keze ügyébe.

Adatmodellezési technikák a DAX-mérések megszervezéséhez

Adatmodellezési technikák a DAX-mérések megszervezéséhez

A mai oktatóanyagban megosztok néhány adatmodellezési technikát a DAX-mérések jobb rendszerezéséhez a hatékonyabb munkafolyamat érdekében.

LuckyTemplates pénzügyi irányítópult: Teljes táblázat testreszabási tippek

LuckyTemplates pénzügyi irányítópult: Teljes táblázat testreszabási tippek

A LuckyTemplates egy nagyszerű eszköz a pénzügyi jelentésekhez. Itt található egy oktatóanyag, amely bemutatja, hogyan hozhat létre személyre szabott táblázatokat a LuckyTemplates pénzügyi irányítópultjához.

A Power Query nyelvi folyamatának bevált gyakorlatai

A Power Query nyelvi folyamatának bevált gyakorlatai

Ez az oktatóanyag megvitatja a Power Query nyelvi folyamatot, és azt, hogyan segíthet zökkenőmentes és hatékony adatjelentések létrehozásában.

LuckyTemplates egyéni ikonok | PBI vizualizációs technika

LuckyTemplates egyéni ikonok | PBI vizualizációs technika

Az egyik kedvenc technikámról fogok beszélni a LuckyTemplates egyéni ikonok körül, amely dinamikusan használja az egyéni ikonokat a LuckyTemplates vizualizációkban.