Усічення Float у Python: пояснення на прикладах

Усічення числа з плаваючою комою є звичайною операцією, з якою багато програмістів стикаються в різних програмах. Процес передбачає видалення десяткового знака з плаваючою речовиною, залишаючи лише цілу частину. Це цінна техніка для спрощення обчислень, покращення читабельності вихідних даних і зменшення можливих помилок округлення.

Щоб скоротити значення з плаваючою точкою в Python, ви можете використовувати функцію math.trunc(), десятковий модуль або операцію з рядками. Використовуючи ці прийоми, розробники Python можуть гнучко та точно адаптувати процес скорочення до своїх конкретних вимог.

Усічення Float у Python: пояснення на прикладах

У цій статті ми розглянемо, як можна застосувати скорочення до . Ми заглибимося в різні практичні приклади, представивши комплексний погляд на те, як використовувати цю техніку для досягнення максимального ефекту.

Давайте почнемо з розгляду основних концепцій і методів скорочення рядків, чисел і структур даних у Python.

Зміст

Основи Python Truncate

У цьому розділі ми розглянемо визначення скорочення, розглянемо функції Python для скорочення та навчимося скорочувати десяткові знаки та числа з плаваючою точкою.

1. Визначення Truncate в Python

Усічення — це процес скорочення числа шляхом видалення десяткового знака. Це важливе поняття в інформатиці та математиці, яке використовується для скорочення цифр до простішої форми без зміни їх значення.

2. Як використовувати функцію усічення Python

У Python є кілька способів скоротити абсолютні значення. Одним із поширених методів скорочення є використання функції math.trunc() , яка безпосередньо видаляє десяткові знаки з двійкового значення з плаваючою комою.

Ось приклад:

import math

float1 = 123.356
float2 = -2434.545

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

Вихід:

123
-2434

Цей метод дає результати, подібні до функції int() , яка також скорочує задане число, видаляючи десяткові знаки.

Усічення Float у Python: пояснення на прикладах

3. Як скоротити десяткові знаки та числа з плаваючою точкою в Python

У деяких випадках вам може знадобитися скоротити число з плаваючою точкою до певної кількості десяткових цифр. У таких випадках для округлення чисел можна використовувати функцію round () . Однак зауважте, що функція round() лише округлює число, а не скорочує його.

Якщо ви хочете скоротити до певної десяткової крапки, ви можете скористатися таким підходом:

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)

Вихід:

3.14

У наведеному вище прикладі функція truncate_float() приймає два параметри — число float, яке буде скорочено, і бажану кількість десяткових ком.

Він використовує множник, щоб спочатку зсунути десяткову крапку з плаваючою точкою, потім перетворює результат у ціле число (фактично скорочуючи число) і, нарешті, ділить ціле число на множник, щоб відновити десяткову крапку до початкової позиції.

Майте на увазі, що робота з числами з плаваючою комою в Python може призвести до певної неточності в обчисленнях через природу арифметики з плаваючою комою. Тому, коли точність і точність є вирішальними, розгляньте можливість використання десяткового модуля.

Гаразд, це основи скорочення значень у Python. У наступному розділі ми розглянемо, як можна скоротити значення за допомогою математичної бібліотеки та інших функцій Python.

Усічення в Python за допомогою математичної бібліотеки та функцій

У сфері програмування Python оптимізація часто є ключовою. Використання математичної бібліотеки Python і її вбудованих функцій може значно підвищити продуктивність, особливо при роботі з великими наборами даних або складними обчисленнями.

Цей розділ присвячено вивченню того, як ми можемо використовувати «математичну» бібліотеку та її надійні функціональні можливості для завдань скорочення — ефективного зменшення або обмеження розміру даних — у Python.

1. math.trunc()

Математична бібліотека Python надає кілька функцій для роботи з плаваючими значеннями, одна з яких math.trunc() . Ця функція повертає скорочене значення даного числа з плаваючою точкою, фактично видаляючи його дробову частину та залишаючи лише цілу частину.

Ось приклад використання math.trunc() :

import math

number = 3.7
truncated_number = math.trunc(number)

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

Вихід:

3
3.7

math.trunc() округляє число до нуля. Для додатних чисел вона працює як функція підлоги, а для від’ємних чисел – як функція стелі.

Усічення Float у Python: пояснення на прикладах

2. math.floor() і math.ceil()

Окрім math.trunc() , математична бібліотека також надає функції для округлення чисел різними способами, наприклад функції math.floor() і math.ceil() .

Функція math.floor () округлює значення з плаваючою комою до найближчого цілого числа, тоді як math.ceil() округлює до найближчого цілого числа.

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) 

Вихід:

Floor of x: 3
Floor of y: 9

Ось ілюстрація функції math.floor().

Усічення Float у Python: пояснення на прикладах

Цей фрагмент коду демонструє використання функції 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) 

Вихід:

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

3. Перетворення плаваючого значення за допомогою int()

Ще один спосіб обрізати значення з плаваючою точкою — це використовувати вбудовану функцію int() . Коли значення передається в float, воно перетворює його на ціле число шляхом скорочення десяткової частини.

Цей підхід може бути зручнішим для простих випадків усікання, оскільки не вимагає імпорту математичної бібліотеки.

float5 = 7.65
float6 = -3.14

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

Вихід:

7
-3

Однак важливо пам’ятати, що функція int() не еквівалентна math.floor() або math.ceil() , оскільки вона лише обрізає число без урахування його знака.

Ось ілюстрація наведеної вище функції int() для скорочення float у редакторі коду;

Усічення Float у Python: пояснення на прикладах

Таким чином, математична бібліотека Python пропонує кілька функцій для роботи зі значеннями з плаваючою точкою, включаючи усікання, округлення вниз і округлення вгору. Математична бібліотека — це важливий інструмент, на який можна покластися, коли потрібно виконувати складні математичні операції.

У той час як функції int() і math.trunc() пропонують прості способи скорочення значень з плаваючою комою, десятковий модуль забезпечує більш потужний і точний підхід, тому давайте розглянемо це в наступному розділі.

Як скоротити значення в Python за допомогою десяткового модуля

«Decimal» модуль Python є потужним інструментом, який пропонує точне оброблення десяткових чисел, функція, яка стає особливо зручною, коли потрібне скорочення.

У цьому розділі розглядаються практичні застосування цього модуля для скорочення значень у Python. Ми розглянемо покрокові приклади та надамо глибоке розуміння концепцій цієї ефективної та точної техніки маніпулювання даними.

1. Використання методу квантування

Метод квантування класу Decimal є універсальним інструментом для скорочення десяткових екземплярів. Цей метод дозволяє розробникам задавати потрібну точність і режим округлення, забе��печуючи точне скорочення.

Розглянемо такий приклад:

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

Вихід:

3

У цьому прикладі метод квантування застосовано до номера екземпляра Decimal з точністю до одного знака після коми та режимом округлення ROUND_DOWN , який фактично скорочує значення.

2. Використання методу to_integral_value

Ще один корисний метод, наданий класом Decimal , це to_integral_value . Цей метод повертає найближче ціле число до вказаного десяткового значення, фактично скорочуючи десяткові знаки.

Метод to_integral_value дозволяє розробникам також вказати режим округлення.

Ось приклад:

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

Вихід:

3

У цьому прикладі метод to_integral_value використовується з режимом округлення ROUND_DOWN , що призводить до скорочення.

3. Застосування методу нормалізації

Метод normalize класу Decimal надає спосіб налаштувати експоненту та масштаб десяткового примірника. Використовуючи цей метод, розробники можуть ефективно скорочувати десяткові знаки.

Розглянемо такий приклад:

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

Вихід:

3.14159

У цьому прикладі метод нормалізації застосовано до числа екземпляра Decimal , що призводить до того самого значення без десяткових знаків.

Далі розглянемо способи скорочення рядків і списків у Python.

Методи скорочення для рядків і списків у Python

У цьому розділі ми обговоримо різні прийоми скорочення рядків і списків у функціях Python. Ми розглянемо наступні підрозділи: методи скорочення рядків і скорочення списку .

1. Методи скорочення рядків

У Python існує кілька способів скоротити a, включаючи використання str.format , нарізку та f-рядки .

1) Використання str.format : цей метод дозволяє обрізати рядок, вказавши значення точності. Наприклад:

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

Вихід:

aaabb

2) Використання фрагментів : за допомогою нотації фрагментів ви можете вибрати підрядок вихідного рядка. Наприклад:

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

Вихід:

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

Використовуючи loc і умову, ми також можемо досягти скорочення на основі значень:

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

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

Вихід:

       A      B
0  1.234  4.567
1  5.678  8.901

У цьому прикладі було використано логічну умову для фільтрації рядків у DataFrame. Залежно від вашого випадку використання ви можете застосувати різні умови та операції за допомогою loc .

Давайте тепер розглянемо практичне застосування скорочення в Python.

3 Практичні застосування скорочення в Python

Розуміння концепції скорочення в Python і відповідних технік — це лише половина рівняння. Інша половина передбачає ефективне застосування цих знань у практичних сценаріях.

У цьому розділі ми переходимо від теорії до практики, ілюструючи, як можна використовувати скорочення для оптимізації коду Python у реальних програмах.

Усічення корисне в різних програмах, деякі з яких:

1. Фінансові розрахунки : під час роботи з валютами зазвичай скорочують десяткові значення, щоб відобразити фактичні гроші, де враховуються лише центи, а менші одиниці не мають значення.

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

Вихід:

49.98

2. Агрегація даних : усікання також можна використовувати для агрегування даних відповідно до певного критерію. Наприклад, агрегування середнього значення добової температури на основі цілих значень.

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)

Вихід:

23.142857142857142

3. Впорядкування елементів : іноді елементи потрібно впорядкувати на основі певного правила скорочення. Цього можна досягти за допомогою параметра key у функції sorted() 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)

Вихід:

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

Ці реальні додатки скорочення демонструють безцінне значення в різних сферах, таких як аналіз даних і машинне навчання.

Проте виникає важливе питання: як порівняти методи скорочення та який метод слід використовувати для певного сценарію? Щоб відповісти на це питання, наш наступний розділ зануриться в порівняльний аналіз різних методів скорочення, які ми обговорювали.

Порівняння методів усічення в Python

Щоб порівняти різні методи скорочення з точки зору продуктивності та точності, давайте розглянемо великий набір даних і виміряємо час виконання для кожного підходу.

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

У цьому прикладі генерується набір даних із мільйона випадкових значень із плаваючою комою від 0 до 1000. Час виконання для кожного методу скорочення вимірюється за допомогою модуля часу. Підхід десяткового модуля перетворює кожне число на екземпляр Decimal перед усіканням, щоб забезпечити точні результати.

Запустивши код, ви можете спостерігати за часом виконання кожного методу та порівнювати продуктивність.

Вибір відповідного методу скорочення

Коли справа доходить до скорочення значень з плаваючою комою в Python, вибір відповідного методу залежить від конкретних вимог програми або варіанту використання.

Вирішуючи, який метод використовувати, враховуйте такі фактори:

  • Точність: якщо точність є надзвичайно важливою і вам потрібен точний контроль над десятковими знаками, десятковий модуль забезпечує найвищий рівень точності.

  • Продуктивність. Для простого скорочення без потреби у високій точності функції int() і math.trunc() пропонують ефективні рішення.

  • Поведінка округлення: залежно від бажаної поведінки округлення, десятковий модуль дозволяє вказати різні режими округлення, наприклад ROUND_DOWN , ROUND_UP , ROUND_HALF_UP тощо.

  • Сумісність: якщо вам потрібно забезпечити сумісність із застарілим кодом або системами, які не підтримують десятковий модуль, функція int() або функція math.trunc можуть бути життєздатними варіантами.

Заключні думки

Усічення Float у Python: пояснення на прикладах

Розуміння основ скорочення значень з плаваючою точкою в Python має важливе значення для точної обробки та аналізу даних. Python надає різні методи та функції для скорочення або округлення чисел з плаваючою комою на основі конкретних вимог.

Використовуючи такі вбудовані функції, як math.trunc() , math.floor() і math.ceil() , ми можемо ефективно виконувати операції скорочення. Ці функції пропонують гнучкість у обробці позитивних і негативних плаваючих значень, що дозволяє нам контролювати бажаний результат.

Крім того, десятковий модуль пропонує кращий контроль над округленням і точністю, що робить його придатним для фінансових розрахунків або ситуацій, де точність має першорядне значення.

Як і в будь-якій концепції програмування, практика та експериментування є ключовими для опанування мистецтва скорочення значень з плаваючою точкою. Застосовуйте ці методи в реальних сценаріях і досліджуйте додаткові ресурси, такі як документація Python і форуми спільноти, щоб покращити розуміння та навички!


Візуалізація карти форми LuckyTemplates для просторового аналізу

Візуалізація карти форми LuckyTemplates для просторового аналізу

Цей блог містить візуалізацію Shape Map для просторового аналізу в LuckyTemplates. Я покажу вам, як ви можете ефективно використовувати цю візуалізацію з її функціями та елементами.

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

У цьому підручнику я демонструю унікальну ідею щодо фінансової звітності, яка полягає в розподілі результатів для попереднього визначення шаблонів таблиць у LuckyTemplates.

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Створіть показники DAX у LuckyTemplates, використовуючи наявні показники або формули. Це те, що я називаю технікою розгалуження міри.

Найпотужніший виклик функцій у LuckyTemplates

Найпотужніший виклик функцій у LuckyTemplates

У цьому блозі ознайомтеся з набором даних LuckyTemplates, найпотужнішим викликом функцій, який надає вам під рукою тисячі функцій M і DAX.

Методи моделювання даних для організації показників DAX

Методи моделювання даних для організації показників DAX

У сьогоднішньому підручнику я поділюся кількома методами моделювання даних про те, як краще організувати показники DAX для більш ефективного робочого процесу.

Фінансова інформаційна панель LuckyTemplates: повні поради щодо налаштування таблиці

Фінансова інформаційна панель LuckyTemplates: повні поради щодо налаштування таблиці

LuckyTemplates — чудовий інструмент для фінансової звітності. Ось підручник про те, як створювати персоналізовані таблиці для вашої фінансової інформаційної панелі LuckyTemplates.

Рекомендації щодо потоку мови Power Query

Рекомендації щодо потоку мови Power Query

У цьому підручнику обговорюватиметься технологія Power Query Language Flow і те, як вона може допомогти створити гладкий і ефективний звіт із даними.

Спеціальні значки LuckyTemplates | Техніка візуалізації PBI

Спеціальні значки LuckyTemplates | Техніка візуалізації PBI

Я обговорю одну з моїх улюблених технік, пов’язаних із користувальницькими піктограмами LuckyTemplates, яка динамічно використовує власні піктограми у візуальних елементах LuckyTemplates.

Створення таблиць LuckyTemplates за допомогою функції UNION & ROW

Створення таблиць LuckyTemplates за допомогою функції UNION & ROW

У цьому блозі я покажу вам, як можна створювати таблиці LuckyTemplates за допомогою формули, яка поєднує функції UNION і ROW.

Локальний шлюз даних у Power Automate

Локальний шлюз даних у Power Automate

Дізнайтеся, як локальний шлюз даних дозволяє Power Automate отримувати доступ до настільних програм, коли користувач знаходиться поза комп’ютером.