NumPy সম্প্রচার

Numpy Sampracara



বিভিন্ন আকারের অ্যারে যোগ করা যাবে না, বিয়োগ করা যাবে না বা অন্যথায় গাণিতিক ব্যবহার করা যাবে না। বৃহত্তর অ্যারের মতো একই মাত্রা এবং আকার দেওয়ার জন্য ছোট অ্যারের নকল করা একটি পদ্ধতি। অ্যারে গাণিতিক পরিচালনা করার সময়, NumPy অ্যারে ব্রডকাস্টিং নামে পরিচিত একটি বৈশিষ্ট্য অফার করে যা আপনার কোডকে উল্লেখযোগ্যভাবে ছোট এবং সরল করতে পারে। আপনি এই টিউটোরিয়ালে অ্যারে সম্প্রচারের ধারণা এবং NumPy-এ কীভাবে এটি ব্যবহার করবেন সে সম্পর্কে শিখবেন। উপরন্তু, বেশ কিছু উদাহরণ প্রোগ্রাম দেওয়া আছে।

NumPy সম্প্রচার কি?

বিভিন্ন ফর্মের অ্যারেতে গাণিতিক ক্রিয়াকলাপ সম্পাদন করার সময়, NumPy এটিকে সম্প্রচার হিসাবে উল্লেখ করে। এই অ্যারে ক্রিয়াকলাপগুলি প্রায়শই সংশ্লিষ্ট উপাদানগুলিতে সঞ্চালিত হয়। যদি দুটি অ্যারের একই আকৃতি থাকে তবে এটি তাদের উপর সহজেই করা যেতে পারে। যদিও এই ধারণাটি দরকারী, সম্প্রচার সবসময় সুপারিশ করা হয় না কারণ এটি অদক্ষ মেমরি ব্যবহারের ফলে হতে পারে যা গণনাকে ধীর করে দেয়। NumPy ক্রিয়াকলাপগুলি প্রায়শই অ্যারে জোড়ায় সঞ্চালিত হয় যা উপাদান দ্বারা উপাদানকে ভেঙে ফেলা হয়।

সম্প্রচারের নিয়ম

সম্প্রচারের সময় একটি নির্দিষ্ট নির্দেশিকা অবশ্যই অনুসরণ করতে হবে। এগুলি নীচে বর্ণনা করা হল:







  1. দুটি অ্যারের একই র‍্যাঙ্ক না থাকলে নিম্ন র‍্যাঙ্কের অ্যারের আকৃতিটি 1s দিয়ে প্রিপেন্ড করা গুরুত্বপূর্ণ।
  2. দুটি অ্যারে সামঞ্জস্যপূর্ণ বলে বিবেচিত হয় যদি তাদের একই মাত্রার আকার থাকে বা তাদের একটির মাত্রা 1 এ সেট করা থাকে।
  3. অ্যারেগুলি শুধুমাত্র একসাথে সম্প্রচার করা যেতে পারে যদি তাদের আকার এবং মাত্রা মেলে।
  4. সম্প্রচার সম্পূর্ণ হলে, প্রতিটি অ্যারে এমনভাবে কাজ করে যেন এর ফর্ম দুটি ইনপুট অ্যারের আকারের বৃহত্তম উপাদানের সাথে মিলে যায়।
  5. অ্যারেগুলির একটি এমন আচরণ করে যেন এটি সেই মাত্রার সাথে প্রতিলিপি করা হয় যদি অন্য অ্যারের একটি মাত্রা 1 এর চেয়ে বেশি এবং প্রথম অ্যারের একটি মাত্রা 1 থাকে।

এখন, সম্প্রচারের ধারণা বাস্তবায়নের কিছু উদাহরণ নিয়ে আলোচনা করা যাক।



উদাহরণ 1:

অ্যারের জোড়ায়, NumPy অপারেশনগুলি সাধারণত এলিমেন্ট-বাই-এলিমেন্ট করা হয়। দুটি অ্যারে অবশ্যই, সবচেয়ে সোজা দৃশ্যে, একই আকৃতি থাকতে হবে, যেমন নীচের উদাহরণে:



আমদানি নম্র

one_arr = নম্র অ্যারে ( [ 2.0 , 3.0 , 1.0 ] )

two_arr = নম্র অ্যারে ( [ 3.0 , 3.0 , 3.0 ] )

ছাপা ( one_arr * two_arr )





আপনি উপরের কোড থেকে দেখতে পাচ্ছেন, আমাদের দুটি অ্যারে রয়েছে: 'one_arr' এবং 'two_ arr'। যার প্রত্যেকটির আলাদা আলাদা মান রয়েছে। 'one_arr' এর মানগুলি হল [2.0,3.0,1.0] এবং 'দুই _arr' হল [3.0,3.0,3.0]। তারপরে আপনি দেখতে পাবেন যে এই দুটি অ্যারের গুণফল গণনা করার ফলাফলটি নিম্নরূপ:



যখন অ্যারের ফর্মগুলির দ্বারা নির্দিষ্ট প্রয়োজনীয়তাগুলি পূরণ করা হয়, তখন NumPy-এর সম্প্রচার নিয়ম এই সীমাবদ্ধতাকে কমিয়ে দেয়। যখন একটি অ্যারে এবং একটি স্কেলার মান একটি অপারেশনে যোগদান করা হয়, তখন সম্প্রচারটি তার সবচেয়ে মৌলিক আকারে প্রদর্শিত হয়। আপনি দেখতে পাচ্ছেন, 3 'two_arr' নামের ভেরিয়েবলের মধ্যে রয়েছে।

আমদানি নম্র

one_arr = নম্র অ্যারে ( [ 2.0 , 3.0 , 1.0 ] )

two_arr = 3.0

ছাপা ( one_arr * two_arr )

উপরের কোডটি নিম্নলিখিত ফলাফল তৈরি করে।

পূর্ববর্তী উদাহরণে, যেখানে 'টু_অ্যার' একটি অ্যারে ছিল, ফলাফলটি সমতুল্য। আমরা পাটিগণিত প্রক্রিয়া চলাকালীন স্কেলার ‘টু_অ্যার’-কে একটি অ্যারেতে প্রসারিত করে দেখতে পারি যার আকৃতি ‘এক _arr’-এর মতো। অ্যারে ‘টু_অ্যার’-এ নতুন উপাদান রয়েছে যা শুধুমাত্র প্রথম স্কেলারের সদৃশ। প্রসারিত তুলনা নিছক অনুমানমূলক। সম্প্রচার ক্রিয়াকলাপগুলিকে মেমরি হিসাবে এবং সম্ভাব্য হিসাবে গণনামূলকভাবে লাভজনক করতে, NumPy কপি তৈরি করার পরিবর্তে আসল স্কেলার মান ব্যবহার করার জন্য যথেষ্ট স্মার্ট।

উদাহরণ 2:

এখানে আরেকটি সাধারণ পাইথন প্রোগ্রাম রয়েছে যা সম্প্রচার করে। আবার, দুটি অ্যারে বিভিন্ন মান ধারণকারী তৈরি করা হয়। একটি বাহ্যিক পণ্য গণনা করার জন্য 3×1 আকৃতি সহ একটি কলাম ভেক্টরে 'first_arr' পুনরায় আকার দেওয়া প্রয়োজন। এর পরে, 3×2 আকারের ফলাফল প্রদানের জন্য 'second_arr' এর বিপরীতে সম্প্রচার করা হয়, যা 'first_arr' এবং 'second_arr'-এর বাইরের পণ্য হিসাবে পরিচিত। ×3 সেইসাথে আকৃতি (3,)।

উপরে উল্লিখিত সমস্ত পদক্ষেপগুলি অনুসরণ করার পরে, ম্যাট্রিক্সের প্রতিটি কলামে একটি ভেক্টর অবশ্যই অন্তর্ভুক্ত করতে হবে যা 'ফলাফল_আরর' এবং 'সেকেন্ড_অ্যার'। এগুলোর মাত্রা রয়েছে 2×3 এবং (2, )। 'result_arr' ট্রান্সপোজ করলে 3×2 আকৃতি পাওয়া যাবে, যা একই ফর্ম পেতে 'second_arr'-এর বিপরীতে সম্প্রচার করা যেতে পারে। সাধারণত, এটি স্থানান্তর করার ফলে 2×3 আকারে একটি চূড়ান্ত পণ্য পাওয়া যায়।

আমদানি নম্র

first_arr = নম্র অ্যারে ( [ 12 , 24 , 14 ] )

দ্বিতীয়_আর = নম্র অ্যারে ( [ পনের , 22 ] )

ছাপা ( নম্র নতুন আকার দেওয়া ( first_arr , ( 3 , 1 ) ) * দ্বিতীয়_আর )

ফলাফল_আর = নম্র অ্যারে ( [ [ 12 , 22 , 31 ] , [ পনের , 22 , চার পাঁচ ] ] )

ছাপা ( ফলাফল_আরআর + প্রথম_আয় )

ছাপা ( ( ফলাফল_আর টি + দ্বিতীয়_আর ) . টি )

ছাপা ( result_arr + numpy. নতুন আকার দেওয়া ( দ্বিতীয়_আর , ( দুই , 1 ) ) )

ছাপা ( ফলাফল_আরআর * দুই )

আপনি নীচের আউটপুট দেখতে পারেন.

উদাহরণ 3:

নিম্নলিখিত পাইথন প্রোগ্রাম ব্যবহার করে একটি ত্রিমাত্রিক অ্যারে সম্প্রচার করা যেতে পারে। এই উদাহরণে, 'first_arr' এবং 'second_arr' নামে দুটি অ্যারে তৈরি করা হয়েছে। অ্যারে 'first_arr'-এ [4,13,26,12] মান রয়েছে এবং 'second_arr'-এ [32,67,45,17] মান রয়েছে। প্রাথমিক অ্যারের 2-মাত্রা একটি পার্থক্য তৈরি করে। কোডটি কার্যকর করার পরে প্রথম এবং দ্বিতীয় অ্যারের যোগফল নীচে দেখানো হবে। আপনি দেখতে পাচ্ছেন যে কোডে আমাদের তিনটি প্রিন্ট স্টেটমেন্ট রয়েছে, যার প্রত্যেকটি 'প্রথম অ্যারে:', 'দ্বিতীয় অ্যারে', এবং 'তৃতীয় অ্যারে:' পাঠ্য প্রদর্শন করে। এই দুটি নতুন উত্পন্ন অ্যারের যোগফল তারপর দেখানো হয়.

আমদানি নম্র

first_arr = নম্র অ্যারে ( [ [ 4 , 13 , 26 , 12 ] , [ 32 , 67 , চার পাঁচ , 17 ] ] )

দ্বিতীয়_আর = নম্র অ্যারে ( [ 24 , চার পাঁচ , 66 , 87 ] )

ছাপা ( ' \n প্রথম অ্যারে: ' )

ছাপা ( first_arr )

ছাপা ( ' \n দ্বিতীয় অ্যারে: ' )

ছাপা ( দ্বিতীয়_আর )

ছাপা ( ' \n প্রথম এবং দ্বিতীয় অ্যারের যোগফল: ' )

যোগফল = first_arr + দ্বিতীয়_arr ;

ছাপা ( যোগফল )

এখানে প্রদত্ত কোডের আউটপুট স্ক্রিনশট রয়েছে।

উদাহরণ 4:

শেষ পাইথন প্রোগ্রাম যা একটি ত্রিমাত্রিক অ্যারে সম্প্রচার করে তা এখানে দেওয়া হল। এই প্রোগ্রামে দুটি অ্যারে নির্দিষ্ট করা হয়েছে, যার প্রথমটির তিনটি মাত্রা রয়েছে। কোডটি কার্যকর করার পরে প্রথম এবং দ্বিতীয় অ্যারের যোগফল উপরে দেখানো হিসাবে দেখানো হবে। যদিও এই অ্যারেগুলির মানগুলি পরিবর্তিত হয়, তবে অবশিষ্ট কোডটি উপরের উদাহরণ প্রোগ্রামে ব্যবহৃত কোডের মতোই।

আমদানি নম্র

first_arr = নম্র অ্যারে ( [ [ 12 , চার পাঁচ , 22 , 13 ] , [ 22 , 54 , 25 , 12 ] , [ পঞ্চাশ , 40 , 18 , 26 ] ] )

দ্বিতীয়_আর = নম্র অ্যারে ( [ 12 , 44 , 22 , 12 ] )

ছাপা ( ' \n প্রথম অ্যারে: ' )

ছাপা ( first_arr )

ছাপা ( ' \n দ্বিতীয় অ্যারে: ' )

ছাপা ( দ্বিতীয়_আর )

ছাপা ( ' \n প্রথম এবং দ্বিতীয় অ্যারের যোগফল: ' )

যোগফল = first_arr + দ্বিতীয়_arr ;

ছাপা ( যোগফল )

আপনি নীচের চিত্রে দেখতে পাচ্ছেন যে প্রথম অ্যারের থেকে একটি 3-মাত্রিক অ্যারে উপস্থাপন করা হয়েছে, তারপরে দ্বিতীয় অ্যারের থেকে একটি 2-মাত্রিক অ্যারে এবং এই দুটির ফলাফল সম্প্রচার নীতিকে কাজে লাগিয়ে।

উপসংহার

এই নিবন্ধটি সম্প্রচার নিয়ে আলোচনা করেছে, একটি গুরুত্বপূর্ণ পাইথন ধারণা। NumPy-এ, 'সম্প্রচার' শব্দটি প্রায়শই সম্পাদিত গাণিতিক ক্রিয়াকলাপগুলি সম্পাদন করার সময় বিভিন্ন আকারের অ্যারেগুলি পরিচালনা করার ক্ষমতা বোঝায়। উপরোক্ত বিষয় পুঙ্খানুপুঙ্খভাবে বিভিন্ন উদাহরণ দিয়ে আচ্ছাদিত করা হয়েছে. এই নিবন্ধটি যথাক্রমে 1-D, 2-D, এবং 3-D অ্যারেতে কীভাবে সম্প্রচার করা যায় তা প্রদর্শন করতে উল্লিখিত উদাহরণ প্রোগ্রামগুলি ব্যবহার করেছে। আপনি আপনার সিস্টেমে এই উদাহরণগুলি চালানোর চেষ্টা করতে পারেন এবং সাধারণভাবে সবকিছু কীভাবে কাজ করে তা আরও ভালভাবে বোঝার জন্য ফলাফলগুলি দেখতে পারেন।