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

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

حاصل ضرب ها با ufunc (ufunc Products)

در این صفحه با حاصل ضرب ها با ufunc در NumPy آشنا می شوی. همه مثال ها دقیقاً از متن اصلی W3Schools برداشته شده اند و فقط شکل توضیح آن ها ساده تر شده است.

حاصل ضرب ها با ufunc در NumPy با np.prod

در متن منبع گفته شده برای پیدا کردن حاصل ضرب عناصر آرایه از تابع prod() استفاده کن.

در مثال اول، یک آرایه چهار عضوی ساخته شده است و حاصل ضرب همه عددها با np.prod حساب می شود.

import numpy as np

arr = np.array([1, 2, 3, 4])

x = np.prod(arr)

print(x)

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

طبق توضیح منبع، خروجی این مثال 24 است؛ چون 1×2×3×4 برابر 24 شده است.

در متن، یک مثال دیگر هم آمده که حاصل ضرب عناصر دو آرایه را پشت سرهم حساب می کند.

import numpy as np

arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])

x = np.prod([arr1, arr2])

print(x)

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

در منبع نوشته شده خروجی این مثال 40320 است؛ یعنی حاصل ضرب 1 تا 8 کنار هم.

برای دیدن تصویر کامل تر از ufunc، می توانی بعداً سراغ صفحه جمع ها با ufunc هم بروی.

حاصل ضرب روی محور با پارامتر axis

در بخش Product Over an Axis منبع، گفته شده اگر axis=1 را مشخص کنی، NumPy حاصل ضرب هر آرایه را جداگانه برمی گرداند.

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

import numpy as np

arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])

newarr = np.prod([arr1, arr2], axis=1)

print(newarr)

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

در متن منبع، خروجی این مثال [24 1680] معرفی شده است؛ یعنی حاصل ضرب آرایه اول 24 و حاصل ضرب آرایه دوم 1680 است.

نکته: همین مثال برای فهمیدن حاصل ضرب ها با ufunc روی محور کافی است و منبع مثال اضافه تری نشان نداده است.

حاصل ضرب تجمعی با np.cumprod

در بخش Cummulative Product منبع، نوشته شده حاصل ضرب تجمعی یعنی حاصل ضرب ها را مرحله به مرحله حساب کنیم.

در متن توضیح داده شده که برای آرایه [1, 2, 3, 4] حاصل ضرب تجمعی برابر [1, 2, 6, 24] می شود.

برای پیاده سازی این ایده، منبع از تابع cumprod() استفاده کرده است.

import numpy as np

arr = np.array([5, 6, 7, 8])

newarr = np.cumprod(arr)

print(newarr)

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

منبع گفته خروجی این مثال [5 30 210 1680] است؛ یعنی 5، بعد 5×6، بعد 5×6×7، بعد 5×6×7×8.

برای تمرین روی همین ایده در سه گام ساده جلو برو:

  1. آرایه ای کوچک مانند [1, 2, 3] بساز.
  2. یک بار np.prod را روی کل آرایه اجرا کن.
  3. بار دیگر با np.cumprod خروجی تجمعی را ببین و مقایسه کن.

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

جمع بندی سریع حاصل ضرب ها با ufunc

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

  • np.prod حاصل ضرب عناصر یک آرایه را برمی گرداند.
  • np.prod روی چند آرایه هم اجرا شده و حاصل ضرب کلی داده است.
  • با axis=1 حاصل ضرب هر آرایه جداگانه در خروجی دیده می شود.
  • np.cumprod حاصل ضرب تجمعی عناصر را طبق مثال منبع می سازد.
  • مقادیر نمونه 24، 40320 و 1680 دقیقاً از مثال های W3Schools آمده اند.