Numpy 2D صف بنائیں

Numpy 2d Sf Bnayy



ایک دو جہتی Numpy صف کی وضاحت ازگر کی فہرستوں کی فہرست سے کی گئی ہے۔ بالکل ایک واحد طول و عرض Numpy سرنی کی طرح، ایک صف میں تمام عناصر ایک ہی قسم کے ہونے چاہئیں۔ اگر متعدد اقسام کی فہرستوں کے ساتھ ایک NumPy سرنی کا اعلان کیا جاتا ہے تو، قسم کی جبر واقع ہوگی اور تمام اقدار کو ایک ہی قسم میں تبدیل کر دیا جائے گا۔ قسم جبر وہ ہے جس میں ڈیٹا کی اقسام کو ایک سے دوسرے میں تبدیل کیا جاتا ہے، یہ مضمر یا خودکار ہے۔ دو جہتی صفوں میں، جہتیں دو سے زیادہ ہو سکتی ہیں۔

آسان الفاظ میں، ہم دو جہتی سرنی کو دوسری صف کے اندر ایک صف کے طور پر بیان کر سکتے ہیں۔ اس کا انڈیکس '0' سے شروع ہوتا ہے اور سرنی '-1' کے سائز پر ختم ہوتا ہے۔ صفوں کو صفوں کے اندر n بار بنایا جا سکتا ہے۔ ایک دو جہتی صف دونوں سمتوں میں عمودی اور افقی طور پر سائز تبدیل کر سکتی ہے۔

نحو

ایک صف کا اعلان کرنے کے لیے نحو درج ذیل ہے:







array_name = [ r_arr ] [ c_arr ]

array_name اس صف کا نام ہے جسے ہم بنانا چاہتے ہیں۔ جبکہ، 'r_arr' صف کی قطاریں ہیں اور 'c_arr' صف کا کالم ہے۔ یہ نحو ہمیں میموری کی جگہ بنانے کی اجازت دیتا ہے جہاں سرنی کو ذخیرہ کیا جائے گا، یا ہم کہہ سکتے ہیں کہ میموری کی جگہ کو صف کے لیے مخصوص کیا جا سکتا ہے۔



2D صف کا اعلان کرنے کا ایک اور طریقہ ہے:



array_name = [ [ R1C1 , R1C2 , R1C3 , ... ] , [ R2C2 , R2C2 , R2C3 , ... ] , . . .. ]

اوپر دیے گئے نحو میں، ارے کا نام صف کا نام ہے جہاں 'R1C1'، 'R2C1'، … n صف کے عناصر ہیں جہاں 'R' قطاروں کو ظاہر کرتا ہے اور 'c' کالم کو ظاہر کرتا ہے۔ جیسا کہ ہم پہلے مربع منحنی خطوط وحدانی میں دیکھ سکتے ہیں، قطاروں کی تعداد بدل رہی ہے جبکہ کالم ایک جیسے ہیں۔ اس کی وجہ یہ ہے کہ، صف کے اندر، ہم ایک سے زیادہ صفوں کا استعمال کرتے ہوئے کالم کی وضاحت کرتے ہیں جب کہ قطاریں اندرونی صفوں کے اندر بیان کی جاتی ہیں۔





مثال # 01: دو جہتی صف بنانا

آئیے ہم دو جہتی سرنی بنانے کی ایک عملی مثال دیتے ہیں اور اس بات کا بہتر اندازہ حاصل کرتے ہیں کہ دو جہتی سرنی کیسے بنتی ہے۔ 2D ارے بنانے کے لیے، ہم سب سے پہلے اپنی NumPy لائبریری کو درآمد کریں گے جو ہمیں کچھ پیکجز کو لاگو کرنے کے قابل بنائے گی جو NumPy ہمیں صف بنانے کے لیے فراہم کرتا ہے۔ اگلا، ہم ایک متغیر کو شروع کریں گے جو ایک صف بنانے کے لیے دو جہتی سرنی رکھتا ہے۔ ہم np.array() فنکشن پاس کریں گے جو ہم دونوں کو کسی بھی قسم کی ارے بنانے کی اجازت دیتا ہے چاہے وہ 1D، 2D، یا اسی طرح کی ہو۔ اس فنکشن کے لیے، ہم اس صف کے اندر ایک سے زیادہ اریوں کو پاس کریں گے جو ہمیں 2-جہتی سرنی بنانے دیتا ہے۔

جیسا کہ ہم نیچے اسکرین شاٹ میں دیکھ سکتے ہیں، دوسری لائن میں، ہم نے اس فنکشن میں تین اریوں کو پاس کیا جس کا مطلب ہے کہ ہمارے پاس تین قطاریں ہیں اور ان اریوں کے اندر، ہم نے ہر ایک کو 6 عناصر پاس کیے ہیں جس کا مطلب ہے کہ 6 کالم ہیں۔ ایک بات قابل غور ہے، کیا ہم ہمیشہ عناصر کو مربع بریکٹ میں پاس کرتے ہیں جس کا مطلب ہے کہ ہم سرنی عناصر کو پاس کر رہے ہیں اور ہم دیکھ سکتے ہیں کہ ہم نے سنگل اری کے اندر ایک سے زیادہ اریوں کو پاس کیا ہے۔



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

صف = جیسے صف ( [ [ 1 , دو , 3 , 4 , 5 , 6 ] , [ 4 , 5 , 6 , 7 , 8 , 9 ] , [ 7 , 8 , 9 , 10 , گیارہ , 12 ] ] )

پرنٹ کریں ( صف )

آخر میں، ہم نے پرنٹ اسٹیٹمنٹ کا استعمال کرتے ہوئے سرنی کو پرنٹ کیا۔ جیسا کہ ذیل میں اسکرین شاٹ میں دکھایا گیا ہے، ہم دیکھ سکتے ہیں کہ اری دکھائی گئی ہے جس میں 3 قطاریں اور 6 کالم ہیں۔

مثال نمبر 02: اقدار تک رسائی

جیسا کہ ہم نے 2D arrays بنانے کے طریقہ کار کا مطالعہ کیا، ہمارے ذہن میں ایک چیز ضرور آئی ہوگی: ہم 2D array کے عناصر تک کیسے رسائی حاصل کر سکتے ہیں؟ جبکہ 2D سرنی کے عنصر تک رسائی کوئی بڑا مسئلہ نہیں ہے۔ Numpy ہمیں کوڈ کی ایک سادہ لائن کے ذریعہ صفوں کے عناصر کو جوڑ توڑ کرنے کے قابل بناتا ہے جو یہ ہے:

صف [ قطار انڈیکس ] [ کالم انڈیکس ]

ارے اس ارے کا نام ہے جہاں سے ہمیں ڈیٹا تک رسائی یا بازیافت کرنا ہے جہاں قطار انڈیکس قطار کی میموری کی جگہ ہے۔ اور کالم انڈیکس کالم کا وہ مقام ہے جس تک رسائی حاصل کرنا ہے، فرض کریں کہ ہمیں قطار کے انڈیکس '2' عنصر اور کالم کے انڈیکس '0' عنصر تک رسائی حاصل کرنی ہے۔

جیسا کہ ہم نیچے دی گئی تصویر میں دیکھ سکتے ہیں، ہم نے پہلے NumPy کے پیکجز تک رسائی کے لیے NumPy لائبریری کو درآمد کیا۔ اس کے بعد، ہم نے متغیر نام 'ارے' کا اعلان کیا جو 2D ارے رکھتا ہے اور پھر اسے وہ قدریں پاس کیں جنہیں ہم اس میں محفوظ کرنا چاہتے ہیں۔ ہم نے سب سے پہلے صف کو اس طرح ظاہر کیا جیسا کہ ہم نے شروع کیا ہے۔ اس کے بعد، ہم نے انڈیکس کے ساتھ ارے کو اپنے پرنٹ() اسٹیٹمنٹ میں پاس کیا جو انڈیکس '2' میں محفوظ ہونے والی پوری صف کو ظاہر کرے گا۔ کوڈ کی اگلی لائن میں، ہم نے دوبارہ دو اشاریہ جات کے ساتھ ارے کو پرنٹ() اسٹیٹمنٹ میں پاس کیا۔ پہلی صف کی قطار ہے اور دوسری صف کا کالم ہے جو '0' اور '2' ہے۔

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

صف = جیسے صف ( [ [ 1 , دو , 3 , 4 , 5 , 6 ] , [ 4 , 5 , 6 , 7 , 8 , 9 ] , [ 7 , 8 , 9 , 10 , گیارہ , 12 ] ] )

پرنٹ کریں ( 'سرنی ڈسپلے:' , صف )

پرنٹ کریں ( 'دوسری قطار دکھائیں:' , صف [ دو ] )

پرنٹ کریں ( 'پہلی قطار اور 2 کالم عنصر دکھائیں:' , صف [ 0 ] [ دو ] )

کوڈ کمپائلر کو چلانے کے دوران درج ذیل آؤٹ پٹ واپس آتا ہے جیسا کہ یہ ہے صف کو پرنٹ کرتا ہے۔ پھر، کوڈ کے مطابق دوسری قطار۔ آخر میں، کمپائلر وہ عنصر واپس کرتا ہے جو قطاروں کے لیے انڈیکس '0' اور کالم کے لیے انڈیکس '2' میں محفوظ ہوتا ہے۔

مثال #03: اقدار کو اپ ڈیٹ کرنا

ہم پہلے ہی اس طریقہ کار پر تبادلہ خیال کر چکے ہیں کہ ہم 2D سرنی کے اندر ڈیٹا یا عناصر کو کیسے تخلیق یا ان تک رسائی حاصل کر سکتے ہیں، لیکن جب ہمیں صف کے عناصر کو تبدیل کرنا ہوتا ہے، تو ہم صرف اس طریقہ کار کو استعمال کر سکتے ہیں جو NumPy پیکجوں کے ذریعے فراہم کیا جاتا ہے جو ہمیں اجازت دیتا ہے۔ ایک صف کے اندر مطلوبہ قدر کو اپ ڈیٹ کرنے کے لیے۔

قدر کو اپ ڈیٹ کرنے کے لیے، ہم استعمال کرتے ہیں:

صف [ قطار_انڈیکس ] [ کالم_انڈیکس ] = [ اقدار ]

اوپر دیے گئے نحو میں، array array کا نام ہے۔ قطار انڈیکس وہ جگہ یا مقام ہے جسے ہم ترمیم کریں گے۔ کالم انڈیکس کالم کا وہ مقام ہے جس پر ویلیو اپ ڈیٹ کی جاتی ہے، جہاں ویلیو وہ ہے جسے مطلوبہ انڈیکس میں شامل کیا جانا چاہیے۔

جیسا کہ ہم دیکھ سکتے ہیں، ہم پہلے اپنی NumPy لائبریری کو درآمد کرتے ہیں۔ اور پھر سائز 3 × 6 کی ایک صف کا اعلان کیا اور اس کی عددی اقدار کو پاس کیا۔ اس کے بعد، ہم نے '21' کی قدر کو صف میں منتقل کیا جس کا مطلب ہے کہ ہم '21' کی قدر کو قطار کے '0' پر اور کالم کے '2' میں ذخیرہ کرنا چاہتے ہیں جس کا مطلب ہے کہ ہم اسے انڈیکس میں ذخیرہ کرنا چاہتے ہیں۔ پہلی قطار اور 3 کا rd صف کا کالم۔ پھر دونوں اریوں کو پرنٹ کریں، اصل ایک اور عنصر بھی جسے ہم نے صف میں محفوظ کیا ہے۔

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

صف = جیسے صف ( [ [ 1 , دو , 3 , 4 , 5 , 6 ] , [ 4 , 5 , 6 , 7 , 8 , 9 ] , [ 7 , 8 , 9 , 10 , گیارہ , 12 ] ] )

صف [ 0 ] [ دو ] = اکیس

پرنٹ کریں ( 'سرنی ڈسپلے:' , صف )

پرنٹ کریں ( 'پہلی قطار اور 2 کالم عنصر دکھائیں:' , صف [ 0 ] [ دو ] )

جیسا کہ ذیل میں دکھایا گیا ہے، صرف NumPy پیکیج کے ذریعہ فراہم کردہ کوڈ کی ایک سادہ لائن کو شامل کرکے قدر کو سرنی میں کامیابی کے ساتھ اپ ڈیٹ کیا جاتا ہے۔

نتیجہ

اس آرٹیکل میں، ہم نے دو جہتی صفوں کو بنانے کے مختلف طریقوں کی وضاحت کی اور NumPy کے بلٹ ان فنکشنز کا استعمال کرتے ہوئے ہم ان کو کیسے جوڑ سکتے ہیں۔ ہم نے بحث کی کہ ہم صف کے اندر موجود عناصر تک کیسے رسائی حاصل کر سکتے ہیں اور انہیں اپ ڈیٹ کر سکتے ہیں۔ Numpy ہمیں کوڈ کی ایک لائن کے ذریعہ کثیر جہتی صفوں کو بنانے اور جوڑ توڑ کرنے کے قابل بناتا ہے۔ Numpy arrays python کی فہرستوں سے زیادہ واضح اور زیادہ موثر ہیں۔