آموزش Broadcasting در NumPy

3 سال پیش
آموزش Broadcasting در NumPy

آموزش Broadcasting در NumPy

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش Broadcasting در NumPy خواهیم پرداخت.

پیشنهاد ویژه : آموزش طراحی وب سایت با پایتون

اصطلاح  Broadcasting به توانایی NumPy در درمان آرایه هایی با اشکال مختلف در حین عملیات حساب اشاره دارد. عملیات حسابی روی آرایه ها معمولاً روی عناصر مربوطه انجام می شود. اگر دو آرایه کاملاً یک شکل باشند ، این عملیات به نرمی انجام می شود.

مثال ۱

import numpy as np 

a = np.array([1,2,3,4]) 
b = np.array([10,20,30,40]) 
c = a * b 
print c

 

خروجی آن به شرح زیر است –

[۱۰ ۴۰ ۹۰ ۱۶۰]

 

اگر ابعاد دو آرایه متفاوت باشد، عملیات عنصر به عنصر امکان پذیر نیست. با این حال ، به دلیل قابلیت پخش، امکان انجام آرایه هایی با اشکال غیر مشابه در NumPy وجود دارد. آرایه کوچکتر به اندازه آرایه بزرگتر پخش می شود تا اشکال سازگار داشته باشد.

در صورت رعایت قوانین زیر پخش امکان پذیر است –

  • آرایه با ndim کوچکتر از دیگری به شکل “۱” قرار می گیرد.
  • اندازه در هر بعد از شکل خروجی حداکثر اندازه ورودی در آن بعد است.
  • اگر اندازه آن در یک بعد خاص با اندازه خروجی مطابقت داشته باشد یا مقدار آن دقیقاً ۱ باشد ، می تواند در محاسبه استفاده شود.
  • اگر ورودی دارای اندازه ابعاد ۱ باشد ، اولین ورودی داده در آن بعد برای تمام محاسبات در طول آن بعد استفاده می شود.

گفته می شود مجموعه ای از آرایه ها قابل پخش هستند اگر قوانین فوق یک نتیجه معتبر ایجاد کنند و یکی از موارد زیر درست باشد –

  • آرایه ها دقیقاً همان شکل را دارند.
  • اندازه آرایه ها به همان اندازه است و طول هر بعد یا یک طول مشترک است یا ۱٫
  • آرایه ای که ابعاد بسیار کمی دارد می تواند شکل خود را با ابعاد طول ۱ منشعب شود، بنابراین ویژگی گفته شده در بالا درست است.

برنامه زیر نمونه ای از پخش را نشان می دهد.

مثال ۲

 

import numpy as np 
a = np.array([[0.0,0.0,0.0],[10.0,10.0,10.0],[20.0,20.0,20.0],[30.0,30.0,30.0]]) 
b = np.array([1.0,2.0,3.0])  
   
print 'First array:' 
print a 
print '\n'  
   
print 'Second array:' 
print b 
print '\n'  
   
print 'First Array + Second Array' 
print a + b

 

خروجی این برنامه به شرح زیر است:

First array:
[[ ۰٫ ۰٫ ۰٫]
 [ ۱۰٫ ۱۰٫ ۱۰٫]
 [ ۲۰٫ ۲۰٫ ۲۰٫]
 [ ۳۰٫ ۳۰٫ ۳۰٫]]

Second array:
[ ۱٫ ۲٫ ۳٫]

First Array + Second Array
[[ ۱٫ ۲٫ ۳٫]
 [ ۱۱٫ ۱۲٫ ۱۳٫]
 [ ۲۱٫ ۲۲٫ ۲۳٫]
 [ ۳۱٫ ۳۲٫ ۳۳٫]]

 

شکل زیر نحوه پخش آرایه b را نشان می دهد تا با a سازگار شود.

array

 

منبع.

 

لیست جلسات قبل آموزش NumPy

  1. آموزش NumPy
  2. معرفی NumPy
  3. آموزش محیط کار NumPy
  4. آموزش شی Ndarray در NumPy
  5. آموزش انواع داده ها در NumPy
  6. آموزش ویژگی های آرایه در NumPy
  7. آموزش روال ایجاد آرایه در NumPy
  8. آموزش ایجاد آرایه از داده های موجود در NumPy
  9. آموزش ایجاد آرایه از محدوده های عددی در NumPy
  10. آموزش شاخص گذاری و برش در NumPy
  11. آموزش شاخص گذاری پیشرفته در NumPy
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه