আমরা জানি, সমান আকারের অ্যারেগুলোর মধ্যে গাণিতিক অপারেশন হয়। কিন্তু অসমান আকারের অ্যারেগুলোর ওপরেও গাণিতিক অপারেশন করা যায় ব্রডকাস্টিং (broadcasting) ব্যবহার করে। ব্রডকাস্টিং মানে হলো একটি অ্যারের আকার (shape) পরিবর্তন করে অন্য অ্যারের সাথে সামঞ্জস্য করা, যেখানে ছোট অ্যারের ndim বড় অ্যারের সাথে মিলাতে এর shape-এ '1' প্রিপেন্ড (prepend) করা হয়।
অন্য অ্যারেতে চেয়ে ছোট ndim-বালা অ্যারের shape-এ '1' প্রিপেন্ড করা হয়।
আউটপুট shape-এর প্রতিটি ডাইমেনশনের সাইজ হলো ইনপুট ডাইমেনশনগুলোর সর্বাধিক সাইজ।
একটি ইনপুট ক্যালকুলেশনে ব্যবহার হতে পারে যদি এর সাইজ আউটপুট সাইজের সাথে মিলে বা এর মান ঠিক ১ হয়।
যদি ইনপুটের কোনো ডাইমেনশনের সাইজ ১ হয়, তবে সেই ডাইমেনশনের প্রথম ডেটা এন্ট্রি সকল ক্যালকুলেশনের জন্য ব্যবহৃত হয়।
নিচের উদাহরণে দেখানো হয়েছে কিভাবে NumPy অ্যারে ম্যানিপুলেশনের সময় ব্রডকাস্টিং ঘটে।
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: [[ 0. 0. 0.] [10. 10. 10.] [20. 20. 20.] [30. 30. 30.]] Second array: [1. 2. 3.] First Array + Second Array [[ 1. 2. 3.] [11. 12. 13.] [21. 22. 23.] [31. 32. 33.]]