فهرست سرفصل‌های NumPy
خانه (HOME) مقدمه (Intro) شروع کار (Getting Started) ساخت آرایه ها (Creating Arrays) ایندکس گذاری آرایه (Array Indexing) برش آرایه (Array Slicing) انواع داده (Data Types) کپی در برابر View (Copy vs View) شکل آرایه (Array Shape) تغییر شکل آرایه (Array Reshape) حلقه روی آرایه (Array Iterating) ترکیب آرایه ها (Array Join) تقسیم آرایه ها (Array Split) جستجو در آرایه (Array Search) مرتب سازی آرایه (Array Sort) فیلتر کردن آرایه (Array Filter) مقدمه تصادفی سازی (Random Intro) توزیع داده (Data Distribution) جابه جایی تصادفی (Random Permutation) ماژول Seaborn (Seaborn Module) توزیع نرمال (Normal Distribution) توزیع دوجمله ای (Binomial Distribution) توزیع پواسون (Poisson Distribution) توزیع یکنواخت (Uniform Distribution) توزیع لجستیک (Logistic Distribution) توزیع چندجمله ای (Multinomial Distribution) توزیع نمایی (Exponential Distribution) توزیع کای دو (Chi Square Distribution) توزیع ریلی (Rayleigh Distribution) توزیع پارتو (Pareto Distribution) توزیع زیف (Zipf Distribution) مقدمه ufunc (ufunc Intro) ساخت تابع ufunc (ufunc Create Function) حساب ساده با ufunc (ufunc Simple Arithmetic) گرد کردن اعشار با ufunc (ufunc Rounding Decimals) لگاریتم ها با ufunc (ufunc Logs) جمع ها با ufunc (ufunc Summations) حاصل ضرب ها با ufunc (ufunc Products) تفاضل ها با ufunc (ufunc Differences) کمترین مضرب مشترک با ufunc (ufunc Finding LCM) بزرگترین مقسوم علیه مشترک با ufunc (ufunc Finding GCD) توابع مثلثاتی با ufunc (ufunc Trigonometric) توابع هذلولوی با ufunc (ufunc Hyperbolic) عملیات مجموعه ای با ufunc (ufunc Set Operations) ویرایشگر (Editor) آزمون (Quiz) تمارین (Exercises) سرفصل دوره (Syllabus) برنامه مطالعه (Study Plan) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
NumPy

NumPy — گرد کردن اعشار با ufunc (ufunc Rounding Decimals)

آخرین بروزرسانی: 1404/08/25

گرد کردن اعشار با ufunc (ufunc Rounding Decimals)

اینجا یاد می گیری گرد کردن اعشار با ufunc در NumPy چطور کار می کند. یعنی عددهای اعشاری را یا می بُری، یا بالا و پایین گرد می کنی، آن هم با چند تابع آماده و راحت.

گرد کردن اعشار با ufunc در NumPy چیست؟

در منبع گفته شده پنج روش اصلی برای گرد کردن اعشار در NumPy داریم. هر روش مثل یک ابزار است و هرکدام کمی فرق دارند.

  • حذف اعشار با truncation (بریدن قسمت اعشاری).
  • حذف اعشار با fix که شبیه trunc است.
  • گرد کردن معمولی با rounding و تابع around.
  • گرد کردن رو به پایین با floor تا نزدیک ترین عدد کوچکتر.
  • گرد کردن رو به بالا با ceil تا نزدیک ترین عدد بزرگتر.

نکته: trunc و fix فقط اعشار را حذف می کنند، اما round، floor و ceil عدد را عوض می کنند.

برای تمرین با گرد کردن اعشار با ufunc در NumPy، این سه قدم ساده را برو:

  1. چند عدد اعشاری شبیه مثال ها در کد بنویس.
  2. روی همان اعداد، یکی یکی تابع های trunc، around، floor و ceil را تست کن.
  3. خروجی ها را مقایسه کن و ببین هر تابع چه تغییری می دهد.

حذف اعشار با trunc و fix

در قسمت Truncation منبع، گفته شده اعشار را حذف می کنیم و نزدیک ترین عدد به صفر را برمی گردانیم. برای این کار می توانیم از trunc() یا fix() استفاده کنیم.

هر دو تابع بخش اعشاری را می برند. یعنی -3.1666 می شود -3 و 3.6667 می شود 3.

import numpy as np

arr = np.trunc([-3.1666, 3.6667])

print(arr)

مشاهده در ادیتور

در مثال دوم منبع، همان کار را با fix() انجام می دهیم. باز هم اعشار حذف می شود و عدد به سمت صفر کشیده می شود.

import numpy as np

arr = np.fix([-3.1666, 3.6667])

print(arr)

مشاهده در ادیتور

نکته: trunc و fix در این مثال ها همان نتیجه را می دهند؛ فقط اعشار را می برند.

گرد کردن معمولی با around

در بخش Rounding منبع، تابع around() معرفی شده است. این تابع مثل گرد کردن معمولی عمل می کند: اگر رقم بعدی بزرگتر یا مساوی 5 باشد، عدد را یک واحد بالا می برد.

مثلاً اگر یک رقم اعشار نگه داریم، 3.16666 می شود 3.2 طبق توضیح منبع.

import numpy as np

arr = np.around(3.1666, 2)

print(arr)

مشاهده در ادیتور

در مثال منبع عدد 3.1666 را به دو رقم اعشار گرد می کنیم. یعنی خروجی چیزی نزدیک 3.17 می شود.

گرد کردن رو به پایین با floor

در بخش Floor منبع، گفته شده تابع floor() عدد اعشاری را به نزدیک ترین عدد صحیح کوچکتر می برد. یعنی همیشه رو به پایین می رود، حتی اگر عدد منفی باشد.

در توضیح منبع مثال زده که floor عدد 3.166 برابر 3 است.

import numpy as np

arr = np.floor([-3.1666, 3.6667])

print(arr)

مشاهده در ادیتور

در این مثال منبع، هم عدد منفی و هم عدد مثبت را floor می کنیم. هر دو به سمت پایین ترین عدد صحیح نزدیک خودشان می روند.

گرد کردن رو به بالا با ceil

در بخش Ceil منبع، تابع ceil() توضیح داده شده است. این تابع برعکس floor عمل می کند و عدد را به نزدیک ترین عدد صحیح بزرگتر می برد.

در متن منبع، مثال زده که ceil عدد 3.166 برابر 4 است.

import numpy as np

arr = np.ceil([-3.1666, 3.6667])

print(arr)

مشاهده در ادیتور

در مثال منبع، روی یک عدد منفی و یک عدد مثبت ceil اجرا می شود. هر دو به سمت بالاترین عدد صحیح نزدیک خودشان حرکت می کنند.

جمع بندی سریع گرد کردن اعشار با ufunc

حالا چند نکته کوتاه درباره گرد کردن اعشار با ufunc در NumPy را مرور کنیم:

  • trunc و fix اعشار را می برند و عدد را به سمت صفر می برند.
  • around مثل گرد کردن معمولی عمل می کند و می توانی تعداد اعشار را مشخص کنی.
  • floor همیشه عدد را رو به پایین تا نزدیک ترین عدد صحیح کم تر می برد.
  • ceil همیشه عدد را رو به بالا تا نزدیک ترین عدد صحیح بزرگ تر می برد.
  • انتخاب بین این توابع بستگی به نیاز محاسباتی و نوع گرد کردن تو دارد.