فهرست سرفصل‌های 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 Differences)

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

تفاضل ها با ufunc (ufunc Differences)

در این بخش با تفاضل ها با ufunc در NumPy آشنا می شوی. می بینی که چطور تابع diff() اختلاف های پشت سرهم را حساب می کند و حتی می تواند این کار را چندبار تکرار کند.

تفاضل گسسته با تابع np.diff

در منبع گفته شده تفاضل گسسته یعنی کم کردن دو عضوِ پشت سر هم آرایه.

مثلاً برای آرایه [1, 2, 3, 4]، تفاضل گسسته می شود [2-1, 3-2, 4-3] یعنی [1, 1, 1].

برای به دست آوردن این تفاضل ها، از تابع diff() در NumPy استفاده می شود.

در مثال منبع، روی آرایه ای با عددهای متفاوت این کار انجام شده است.

import numpy as np

arr = np.array([10, 15, 25, 5])

newarr = np.diff(arr)

print(newarr)

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

طبق توضیح منبع، خروجی این مثال [5 10 -20] است؛ چون 15−10، بعد 25−15 و در آخر 5−25 حساب شده اند.

اگر می خواهی کنار این موضوع، حاصل ضرب ufunc را هم ببینی، می توانی به صفحه حاصل ضرب ها با ufunc سر بزنی.

تکرار تفاضل ها با پارامتر n در np.diff

در ادامه منبع گفته شده می توان این عمل تفاضل گیری را چندبار پشت سرهم انجام داد.

برای این کار، در تابع diff() پارامتر n داده می شود تا تعداد دفعات تکرار مشخص شود.

مثلاً برای آرایه [1, 2, 3, 4]، اگر یک بار تفاضل بگیریم، به [1, 1, 1][0, 0]

در مثال منبع، همین ایده روی آرایه قبلی اجرا شده و n=2 تنظیم شده است.

import numpy as np

arr = np.array([10, 15, 25, 5])

newarr = np.diff(arr, n=2)

print(newarr)

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

طبق متن منبع، خروجی این مثال [5 -30] است؛ یعنی اول تفاضل های [5, 10, -20] به دست آمده اند و بعد یک بار دیگر بین آن ها تفاضل گرفته شده است.

نکته: همین دو مثال تمام چیزی است که منبع برای تفاضل ها با ufunc نشان داده و نکته اضافه ای خارج از این مثال ها بیان نکرده است.

تمرین گام به گام با تفاضل ها با ufunc در NumPy

برای تمرین ایده تفاضل ها با ufunc در NumPy می توانی این سه گام ساده را انجام دهی:

  1. یک آرایه ساده مثل [1, 3, 6, 10] بساز.
  2. یک بار با np.diff(arr) خروجی را ببین و دقت کن.
  3. سپس با np.diff(arr, n=2) تفاضل دوباره را بررسی کن.

اگر در ادامه خواستی مباحث دیگر ufunc را هم دنبال کنی، صفحات جمع ها با ufunc و تفاضل ها با ufunc در NumPy در کنار همین مبحث، تصویر کامل تری به تو می دهند.

جمع بندی سریع تفاضل ها با ufunc

در پایان، چند نکته کوتاه و مستقیم از همان منبع:

  • تفاضل گسسته یعنی کم کردن اعضای پشت سرهم آرایه.
  • تابع np.diff() این تفاضل های گسسته را محاسبه می کند.
  • خروجی مثال اول [5 10 -20] از منبع گرفته شده است.
  • با پارامتر n می توان چندبار پیاپی تفاضل گیری کرد.
  • خروجی مثال دوم [5 -30] نیز دقیقاً طبق مثال W3Schools است.