NumPy اپلائی فنکشن

Numpy Aplayy Fnkshn



Python کی طرف سے پیش کردہ بلٹ ان لائبریری، جسے NumPy کے نام سے جانا جاتا ہے، ہمیں کثیر جہتی صفوں کو بنانے، ان میں ترمیم کرنے اور ان پر مختلف ریاضی کے حساب کتاب کرنے کی اجازت دیتی ہے۔ اپلائی فنکشن بھی NumPy پیکیج کے ذریعے فراہم کیا جاتا ہے۔ اپلائی فنکشن کے لیے عام استعمال کا معاملہ اس منظر نامے سے ملتا جلتا ہے جہاں ہم ایک صف کو سلائس کرنا چاہتے ہیں اور فہرست کے ہر عنصر پر کچھ آپریشن کرنا چاہتے ہیں، مثال کے طور پر، اگر ہم قطار کے ہر آئٹم کو مربع کرنا چاہتے ہیں۔ بلاشبہ، Python میں، ہم جانتے ہیں کہ for-loops سست ہیں لہذا اگر ممکن ہو تو ہم ان سے بچنا چاہیں گے۔ اگر آپ ڈیٹا فریم کی ہر قطار یا کالم پر ایک ہی آپریشن کرنا چاہتے ہیں تو 'Apply' فنکشن استعمال کیا جا سکتا ہے۔ دوسرے لفظوں میں، یہ وہی کرتا ہے جو آپ فار لوپ کے ساتھ کرنا چاہتے ہیں بغیر فار لوپ لکھے۔

حالت کے لحاظ سے کسی بھی فنکشن کو سرنی پر لاگو کرنے کے دو طریقے ہیں۔ ہم 'Apply over the axis' فنکشن کا اطلاق کر سکتے ہیں جو اس وقت مفید ہے جب ہم ایک ایک کر کے ارے کے ہر عنصر پر فنکشن لاگو کرتے ہیں، اور یہ n-dimensional arrays کے لیے مفید ہے۔ دوسرا طریقہ 'محور کے ساتھ لگائیں' ہے جو ایک جہتی صف پر لاگو ہوتا ہے۔

نحو:

طریقہ 1: محور کے ساتھ لگائیں۔

بے حس لگائیں_along_axis ( 1d_فنکشن , محور , arr , *آرگز , ** quargs )

نحو میں، ہمارے پاس 'numpy.apply' فنکشن ہے جس میں ہم پانچ دلائل دیتے ہیں۔ پہلی دلیل جو کہ '1d_function' ہے ایک جہتی صف پر چلتی ہے، جس کی ضرورت ہے۔ جبکہ دوسری دلیل، 'محور'، وہ ہے جس پر آپ ارے کو سلائس کرنا چاہتے ہیں اور اس فنکشن کو لاگو کرنا چاہتے ہیں۔ تیسرا پیرامیٹر 'arr' ہے جو دی گئی صف ہے جس پر ہم فنکشن کو لاگو کرنا چاہتے ہیں۔ جبکہ '*args' اور '*kwargs' اضافی دلائل ہیں جنہیں شامل کرنا ضروری نہیں ہے۔







مثال 1:

'اطلاق' کے طریقوں کی بہتر تفہیم کی طرف بڑھتے ہوئے، ہم اطلاق کے طریقوں کے کام کو جانچنے کے لیے ایک مثال پیش کرتے ہیں۔ اس مثال میں، ہم 'apply_along_Axis' فنکشن انجام دیتے ہیں۔ آئیے اپنے پہلے قدم پر چلتے ہیں۔ ہم پہلے اپنی NumPy لائبریریوں کو بطور np شامل کرتے ہیں۔ اور پھر، ہم 'arr' کے نام سے ایک صف بناتے ہیں جس میں عددی اقدار کے ساتھ 3×3 میٹرکس ہوتا ہے جو کہ '8، 1، 7، 4، 3، 9، 5، 2، اور 6' ہیں۔ اگلی لائن میں، ہم 'array' کے نام سے ایک متغیر بناتے ہیں جو apply_along_Axis فنکشن کا نتیجہ رکھنے کے لیے ذمہ دار ہے۔



اس فنکشن کے لیے، ہم تین دلائل پاس کرتے ہیں۔ پہلا وہ فنکشن ہے جسے ہم ارے پر لاگو کرنا چاہتے ہیں، ہمارے معاملے میں یہ ترتیب شدہ فنکشن ہے کیونکہ ہم چاہتے ہیں کہ ہماری صف کو ترتیب دیا جائے۔ پھر، ہم دوسری دلیل '1' کو پاس کرتے ہیں جس کا مطلب ہے کہ ہم محور = 1 کے ساتھ اپنی صف کو کاٹنا چاہتے ہیں۔ آخر کار، ہم اس صف کو پاس کرتے ہیں جسے اس معاملے میں ترتیب دیا جانا ہے۔ کوڈ کے آخر میں، ہم صرف دونوں اریوں کو پرنٹ کرتے ہیں - اصل صف کے ساتھ ساتھ نتیجے میں آنے والی سرنی - جو پرنٹ() اسٹیٹمنٹ کا استعمال کرتے ہوئے دکھائے جاتے ہیں۔



درآمد بے حس کے طور پر جیسے

arr = جیسے صف ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , دو , 6 ] ] )

صف = جیسے لگائیں_along_axis ( ترتیب دیا گیا , 1 , arr )

پرنٹ کریں ( 'اصل صف یہ ہے:' , arr )

پرنٹ کریں ( 'چھانٹی ہوئی صف یہ ہے:' , صف )





جیسا کہ ہم مندرجہ ذیل آؤٹ پٹ میں دیکھ سکتے ہیں، ہم نے دونوں صفوں کو ظاہر کیا۔ پہلے ایک میں، قدروں کو میٹرکس کی ہر قطار میں تصادفی طور پر رکھا جاتا ہے۔ لیکن دوسرے میں، ہم ترتیب شدہ صف کو دیکھ سکتے ہیں۔ چونکہ ہم نے محور '1' کو پاس کیا ہے، اس نے مکمل صف کو ترتیب نہیں دیا ہے لیکن اس نے اسے قطار کے لحاظ سے ترتیب دیا ہے جیسا کہ دکھایا گیا ہے۔ ہر قطار کو ترتیب دیا گیا ہے۔ دی گئی صف میں پہلی قطار '8، 1، اور 7' ہے۔ ترتیب شدہ صف میں رہتے ہوئے، پہلی قطار '1، 7 اور 8' ہے۔ اسی طرح، ہر قطار کو ترتیب دیا گیا ہے۔



طریقہ 2: محور کے اوپر لگائیں۔

بے حس لاگو_اوور_محور ( func , a , محور )

دیئے گئے نحو میں، ہمارے پاس numpy.apply_over_axis فنکشن ہے جو دیئے گئے محور پر فنکشن کو لاگو کرنے کا ذمہ دار ہے۔ Apply_over_axis فنکشن کے اندر، ہم تین دلائل پاس کرتے ہیں۔ پہلا وہ فنکشن ہے جو انجام دیا جانا ہے۔ دوسرا خود ہی صف ہے۔ اور آخری وہ محور ہے جس پر ہم فنکشن کو لاگو کرنا چاہتے ہیں۔

مثال 2:

مندرجہ ذیل مثال میں، ہم 'لاگو' فنکشن کا دوسرا طریقہ انجام دیتے ہیں جس میں ہم تین جہتی صفوں کے مجموعہ کا حساب لگاتے ہیں۔ یاد رکھنے کی ایک بات یہ ہے کہ دو صفوں کے مجموعہ کا مطلب یہ نہیں ہے کہ ہم پوری صف کا حساب لگاتے ہیں۔ کچھ صفوں میں، ہم قطار کے حساب سے رقم کا حساب لگاتے ہیں جس کا مطلب ہے کہ ہم قطاروں کو شامل کرتے ہیں اور ان میں سے واحد عنصر حاصل کرتے ہیں۔

آئیے اپنے کوڈ پر آگے بڑھیں۔ ہم سب سے پہلے NumPy پیکج درآمد کرتے ہیں اور پھر ایک متغیر بناتے ہیں جو تین جہتی صف رکھتا ہے۔ ہمارے معاملے میں، متغیر 'arr' ہے۔ اگلی لائن میں، ہم ایک اور ویری ایبل بناتے ہیں جو apply_over_axis فنکشن کے نتیجے میں اری کو رکھتا ہے۔ ہم Apply_over_Axis فنکشن کو تین دلائل کے ساتھ متغیر 'arr' کو تفویض کرتے ہیں۔ پہلی دلیل NumPy کا بلٹ ان فنکشن ہے جو کہ np.sum کی رقم کا حساب لگاتا ہے۔ دوسرا پیرامیٹر خود ہی صف ہے۔ تیسری دلیل وہ محور ہے جس پر فنکشن کا اطلاق ہوتا ہے، اس صورت میں ہمارے پاس '[0, 2]' محور ہے۔ کوڈ کے آخر میں، ہم پرنٹ() سٹیٹمنٹ کا استعمال کرتے ہوئے دونوں اریوں پر عمل کرتے ہیں۔

درآمد بے حس کے طور پر جیسے

arr = جیسے صف ( [ [ [ 6 , 12 , دو ] , [ دو , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ دو , 17 , 18 ] , [ 0 , اکیس , 8 ] ] ] )

صف = جیسے لاگو_اوور_محور ( جیسے رقم , arr , [ 0 , دو ] )

پرنٹ کریں ( 'اصل صف یہ ہے:' , arr )

پرنٹ کریں ( 'صف کا مجموعہ ہے:' , صف )

جیسا کہ مندرجہ ذیل تصویر میں دکھایا گیا ہے، ہم نے اپلائی_اوور_ایکسس فنکشن کا استعمال کرتے ہوئے اپنی کچھ تین جہتی صفوں کا حساب لگایا۔ پہلی ظاہر کردہ صف اصل صف ہے جس کی شکل '2، 3، 3' ہے اور دوسری قطاروں کا مجموعہ ہے۔ پہلی قطار کا مجموعہ '53' ہے، دوسرا '54' ہے اور آخری '57' ہے۔

نتیجہ

اس آرٹیکل میں، ہم نے مطالعہ کیا کہ NumPy میں اپلائی فنکشن کس طرح استعمال ہوتا ہے اور ہم مختلف فنکشنز کو اریوں کے ساتھ یا اس کے اوپر کیسے لاگو کر سکتے ہیں۔ NumPy کی طرف سے فراہم کردہ 'Apply' طریقوں کو استعمال کرتے ہوئے کسی بھی فنکشن کو مطلوبہ قطار یا کالم پر کاٹ کر لاگو کرنا آسان ہے۔ یہ ایک موثر طریقہ ہے جب ہمیں اسے پوری صف پر لاگو کرنے کی ضرورت نہیں ہے۔ ہمیں امید ہے کہ اپلائی کرنے کے طریقہ کو استعمال کرنے کا طریقہ سیکھنے میں آپ کو یہ پوسٹ فائدہ مند لگے گی۔