Python میں Arrays کے لیے گائیڈ

Python میں Arrays کے لیے گائیڈ

تعارف

تصور کریں کہ آپ کے فون پر آپ کے پسندیدہ گانوں کی پلے لسٹ موجود ہے۔ یہ پلے لسٹ ایک فہرست ہے جہاں ہر گانے کو ایک مخصوص ترتیب میں رکھا گیا ہے۔ آپ پہلا گانا چلا سکتے ہیں، دوسرے پر جا سکتے ہیں، پانچویں پر جا سکتے ہیں، وغیرہ۔ یہ پلے لسٹ کمپیوٹر پروگرامنگ میں ایک صف کی طرح ہے۔

ارے سب سے بنیادی اور وسیع پیمانے پر استعمال ہونے والے ڈیٹا ڈھانچے میں سے ایک ہیں۔

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

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

سرنی ڈیٹا کی ساخت کو سمجھنا

Arrays کمپیوٹر سائنس اور پروگرامنگ میں استعمال ہونے والے قدیم ترین اور سب سے بنیادی ڈیٹا ڈھانچے میں سے ہیں۔ ان کی سادگی، بعض کارروائیوں میں ان کی کارکردگی کے ساتھ مل کر، انہیں ڈیٹا مینجمنٹ اور ہیرا پھیری کے دائرے میں جانے والے ہر فرد کے لیے ایک اہم موضوع بناتی ہے۔

ایک صف آئٹمز کا مجموعہ ہے، عام طور پر کا ایک ہی قسممیں ذخیرہ متصل میموری کے مقامات.

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

مثال کے طور پر، عدد کی ایک صف پر غور کریں: [10, 20, 30, 40, 50]. یہاں، عنصر 20 کا انڈیکس ہے۔ 1:

python array indexing

متعدد ہیں فوائد ہمارے ڈیٹا کو ذخیرہ کرنے کے لیے صفوں کا استعمال کرنا۔ مثال کے طور پر، ان کی میموری لے آؤٹ کی وجہ سے، صفوں کی اجازت ہوتی ہے۔ O (1) (مستقل) وقت کی پیچیدگی جب کسی عنصر تک اس کے اشاریہ کے ذریعہ رسائی حاصل کرتے ہیں۔ یہ خاص طور پر فائدہ مند ہے جب ہمیں عناصر تک بے ترتیب رسائی کی ضرورت ہو۔ مزید برآں، صفوں میں ذخیرہ کیا جاتا ہے۔ متصل میموری کے مقامات، جو کچھ آپریشنز میں بہتر کیش لوکلٹی اور مجموعی کارکردگی میں بہتری کا باعث بن سکتا ہے۔ arrays کے استعمال کا ایک اور قابل ذکر فائدہ یہ ہے کہ، چونکہ ایک بار اعلان ہونے کے بعد arrays کا ایک مقررہ سائز ہوتا ہے، اس لیے میموری کو منظم کرنا اور غیر متوقع اوور فلو یا میموری سے باہر ہونے والی غلطیوں سے بچنا آسان ہے۔

نوٹ: ارے خاص طور پر ایسے منظرناموں میں مفید ہیں جہاں مجموعہ کا سائز پہلے سے معلوم ہوتا ہے اور مستقل رہتا ہے۔، یا جہاں بے ترتیب رسائی اندراج اور حذف کرنے سے زیادہ کثرت سے ہوتی ہے۔

دوسری طرف، صفیں ان کے اپنے سیٹ کے ساتھ آتی ہیں۔ حدود. روایتی صفوں کی بنیادی حدود میں سے ایک ان کی ہے۔ مقررہ سائز. ایک بار ایک صف بن جانے کے بعد، اس کا سائز تبدیل نہیں کیا جا سکتا۔ یہ ضائع شدہ میموری (اگر صف بہت بڑی ہے) یا سائز تبدیل کرنے کی ضرورت (اگر صف بہت چھوٹی ہے) جیسے مسائل کا باعث بن سکتی ہے۔ اس کے علاوہ، صف کے بیچ میں کسی عنصر کو داخل کرنے یا حذف کرنے کے لیے عناصر کی تبدیلی کی ضرورت ہوتی ہے، جس کی وجہ سے اے (ن) ان آپریشنز کے لیے وقت کی پیچیدگی۔

اس سب کا خلاصہ کرنے کے لیے، آئیے اس گائیڈ کے آغاز سے گانے کی پلے لسٹ مثال کا استعمال کرتے ہوئے صفوں کی اہم خصوصیات کو واضح کرتے ہیں۔ ایک صف ایک ڈیٹا ڈھانچہ ہے جو:

  • انڈیکس کیا گیا ہے: بالکل اسی طرح جیسے آپ کی پلے لسٹ میں ہر گانے کا ایک نمبر ہوتا ہے (1، 2، 3، …)، ایک صف میں ہر عنصر کا ایک انڈیکس ہوتا ہے۔ لیکن، زیادہ تر پروگرامنگ زبانوں میں، انڈیکس 0 سے شروع ہوتا ہے۔ لہٰذا، پہلا آئٹم انڈیکس 0 پر، دوسرا انڈیکس 1 پر، وغیرہ۔

  • فکسڈ سائز ہے۔: جب آپ 10 گانوں کے لیے پلے لسٹ بناتے ہیں، تو آپ پہلے ایک کو ہٹائے بغیر 11 واں گانا شامل نہیں کر سکتے۔ اسی طرح، arrays کا ایک مقررہ سائز ہوتا ہے۔ ایک بار جب آپ ایک مخصوص سائز کی ایک صف بناتے ہیں، تو آپ اس کی گنجائش سے زیادہ آئٹمز شامل نہیں کر سکتے۔

  • یکساں ہے۔: آپ کی پلے لسٹ میں تمام گانے میوزک ٹریک ہیں۔ اسی طرح، ایک صف میں تمام عناصر ایک ہی قسم کے ہوتے ہیں۔ اگر آپ کے پاس عدد کی ایک صف ہے، تو آپ اچانک اس میں ٹیکسٹ سٹرنگ کو ذخیرہ نہیں کر سکتے۔

  • براہ راست رسائی ہے۔: اگر آپ اپنی پلے لسٹ میں 7 واں گانا سننا چاہتے ہیں، تو آپ براہ راست اس پر جا سکتے ہیں۔ اسی طرح، arrays کے ساتھ، آپ فوری طور پر کسی بھی عنصر تک رسائی حاصل کر سکتے ہیں اگر آپ کو اس کا انڈیکس معلوم ہو۔

  • متصل یادداشت: یہ قدرے زیادہ تکنیکی ہے۔ جب کمپیوٹر کی میموری میں ایک صف بنائی جاتی ہے، تو یہ میموری کے مسلسل بلاک پر قبضہ کرتی ہے۔ اسے اسکول میں ملحقہ لاکرز کی ایک قطار کی طرح سوچیں۔ ہر لاکر دوسرے کے ساتھ ہے، جس کے درمیان کوئی خلا نہیں ہے۔

Python اور Arrays

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

پہلی نظر میں، ازگر کی فہرست ایک صف کا مترادف معلوم ہو سکتا ہے، لیکن غور کرنے کے لیے ٹھیک ٹھیک فرق اور باریکیاں ہیں:

لسٹ لڑی
ایک بلٹ ان Python ڈیٹا ڈھانچہ Python میں مقامی نہیں ہے - وہ 'array' ماڈیول سے آتے ہیں۔
متحرک سائز فکسڈ (پہلے سے طے شدہ) سائز
مختلف ڈیٹا کی اقسام کے آئٹمز رکھ سکتے ہیں۔ ایک ہی قسم کی اشیاء کو پکڑو
ہیرا پھیری کے لیے بلٹ ان طریقوں کی ایک رینج فراہم کریں۔ بیرونی ماڈیولز درآمد کرنے کی ضرورت ہے۔
O(1) رسائی کی کارروائیوں کے لیے وقت کی پیچیدگی O(1) رسائی کی کارروائیوں کے لیے وقت کی پیچیدگی
زیادہ میموری استعمال کریں۔ زیادہ میموری موثر

اس ٹیبل کو دیکھ کر فطری طور پر پوچھنا آتا ہے کہ "کس کو کب استعمال کرنا ہے؟". ٹھیک ہے، اگر آپ کو کسی ایسے مجموعے کی ضرورت ہے جو متحرک طور پر بڑھے یا سکڑ سکے اور ڈیٹا کی مخلوط اقسام کو رکھ سکے، تو ازگر کی فہرست ہی راستہ ہے۔ تاہم، ایسے منظرناموں کے لیے جن کے لیے ایک ہی قسم کے عناصر کے ساتھ زیادہ میموری کو موثر بنانے کی ضرورت ہوتی ہے، آپ Python کے استعمال پر غور کر سکتے ہیں۔ array ماڈیول یا بیرونی لائبریریاں جیسے NumPy۔

۔ صف ازگر میں ماڈیول

جب زیادہ تر ڈویلپرز ازگر میں صفوں کے بارے میں سوچتے ہیں، تو وہ اکثر فہرستوں کے بارے میں سوچنے کے لیے ڈیفالٹ ہو جاتے ہیں۔ تاہم، ازگر اپنے بلٹ اِن کے ذریعے زیادہ مخصوص صف کا ڈھانچہ پیش کرتا ہے۔ array ماڈیول یہ ماڈیول Python میں بنیادی C-style ڈیٹا کی قسموں کا خلائی موثر ذخیرہ فراہم کرتا ہے۔

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

ایک صف بنانا

استعمال کرنے کے لئے array ماڈیول، آپ کو پہلے اسے درآمد کرنے کی ضرورت ہے:

from array import array

ایک بار درآمد کرنے کے بعد، آپ استعمال کرکے ایک صف بنا سکتے ہیں۔ array() تعمیر کنندہ:

arr = array('i', [1, 2, 3, 4, 5])
print(arr)

یہاں، 'i' دلیل اشارہ کرتی ہے کہ صف دستخط شدہ ذخیرہ کرے گی۔ اشارے. کئی دیگر قسم کے کوڈ دستیاب ہیں، جیسے 'f' فلوٹس کے لئے اور 'd' ڈبلز کے لیے

عناصر تک رسائی اور ترمیم کرنا

آپ کسی صف میں عناصر تک رسائی اور ترمیم کر سکتے ہیں جیسے آپ فہرست کے ساتھ کریں گے:

print(arr[2]) 

اور اب، آئیے عنصر کو اس کی قدر میں تبدیل کرکے اس میں ترمیم کریں۔ 6:

arr[2] = 6
print(arr) 

صف کے طریقے

۔ array ماڈیول صفوں میں ہیرا پھیری کرنے کے کئی طریقے فراہم کرتا ہے:

  • append() - صف کے آخر میں ایک عنصر شامل کرتا ہے:

    arr.append(7)
    print(arr) 
  • extend() - تکراری عناصر کو آخر میں شامل کرتا ہے:

    arr.extend([8, 9])
    print(arr) 
  • pop() - دی گئی پوزیشن پر عنصر کو ہٹاتا اور واپس کرتا ہے:

    arr.pop(2)
    print(arr) 
  • remove(): مخصوص قدر کی پہلی موجودگی کو ہٹاتا ہے:

    arr.remove(2)
    print(arr) 
  • reverse(): صف کی ترتیب کو ریورس کرتا ہے:

    arr.reverse()
    print(arr) 

نوٹ: اس سے کہیں زیادہ طریقے ہیں جو ہم نے یہاں درج کیے ہیں۔ سے رجوع کریں۔ ازگر کی سرکاری دستاویزات میں تمام دستیاب طریقوں کی فہرست دیکھنے کے لیے array ماڈیول.

جبکہ array ماڈیول بنیادی ڈیٹا کی اقسام کو ذخیرہ کرنے کے لیے زیادہ میموری سے موثر طریقہ پیش کرتا ہے، اسے یاد رکھنا ضروری ہے۔ حدود. فہرستوں کے برعکس، صفیں ہیں۔ ہم جنس پرست. اس کا مطلب ہے کہ صف میں موجود تمام عناصر کو ایک ہی قسم کا ہونا چاہیے۔ اس کے علاوہ، آپ صرف ذخیرہ کر سکتے ہیں بنیادی سی طرز کے ڈیٹا کی اقسام صفوں میں اگر آپ کو اپنی مرضی کے مطابق اشیاء یا ازگر کی دیگر اقسام کو ذخیرہ کرنے کی ضرورت ہے، تو آپ کو فہرست یا کوئی اور ڈیٹا ڈھانچہ استعمال کرنے کی ضرورت ہوگی۔

NumPy Arrays

NumPy، عددی Python کے لیے مختصر، Python میں عددی حسابات کے لیے ایک بنیادی پیکیج ہے۔ اس کی بنیادی خصوصیات میں سے ایک اس کی طاقت ہے۔ N-dimensional array آبجیکٹ، جو ریاضی، منطقی، شکل میں ہیرا پھیری، اور بہت کچھ سمیت صفوں پر تیز کارروائیاں پیش کرتا ہے۔

NumPy arrays Python کے بلٹ ان سے زیادہ ورسٹائل ہیں۔ array ماڈیول اور ڈیٹا سائنس اور مشین لرننگ پروجیکٹس میں اہم ہیں۔

NumPy Arrays کیوں استعمال کریں؟

پہلی چیز جو ذہن میں آتی ہے۔ کارکردگی. NumPy arrays کو C میں لاگو کیا جاتا ہے اور آپٹمائزڈ الگورتھم اور مربوط میموری اسٹوریج کے فوائد کی وجہ سے موثر میموری اسٹوریج اور تیز تر آپریشنز کی اجازت دیتے ہیں۔

جبکہ Python کی بلٹ ان فہرستیں اور صفیں ایک جہتی ہیں، NumPy arrays ہو سکتی ہیں کثیر جہتی، انہیں میٹرکس یا ٹینسرز کی نمائندگی کرنے کے لیے مثالی بناتا ہے۔

بہترین طرز عمل، صنعت کے لیے منظور شدہ معیارات، اور چیٹ شیٹ کے ساتھ Git سیکھنے کے لیے ہمارے ہینڈ آن، عملی گائیڈ کو دیکھیں۔ گوگلنگ گٹ کمانڈز کو روکیں اور اصل میں سیکھ یہ!

آخر میں، NumPy فراہم کرتا ہے a افعال کی ایک وسیع صف ان صفوں پر کام کرنے کے لیے، بنیادی ریاضی سے لے کر جدید ریاضی کی کارروائیوں تک، نئی شکل دینا، تقسیم کرنا، اور بہت کچھ۔

نوٹ: جب آپ کو پہلے سے ڈیٹا کا سائز معلوم ہو جاتا ہے، تو صفوں کے لیے میموری کو پہلے سے مختص کرنا (خاص طور پر NumPy میں) کارکردگی میں بہتری کا باعث بن سکتا ہے۔

ایک NumPy سرنی بنانا

NumPy استعمال کرنے کے لیے، آپ کو پہلے اسے انسٹال کرنا ہوگا (pip install numpy) اور پھر اسے درآمد کریں:

import numpy as np

ایک بار درآمد کرنے کے بعد، آپ استعمال کر کے NumPy سرنی بنا سکتے ہیں۔ array() فنکشن:

arr = np.array([1, 2, 3, 4, 5])
print(arr) 

آپ کثیر جہتی صفیں بھی تشکیل دے سکتے ہیں:

matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(matrix)

یہ ہمیں دے گا:

[[1 2 3] [4 5 6] [7 8 9]]

ان بنیادی طریقوں کے علاوہ جو ہم arrays بنا سکتے ہیں، NumPy ہمیں دوسرے ہوشیار طریقے فراہم کرتا ہے جس سے ہم arrays بنا سکتے ہیں۔ جن میں سے ایک ہے۔ arange() طریقہ یہ باقاعدگی سے بڑھتی ہوئی اقدار کے ساتھ صفیں بناتا ہے:

arr = np.arange(10)
print(arr) 

ایک اور ہے linspace() طریقہ، جو عناصر کی ایک مخصوص تعداد کے ساتھ صفوں کو تخلیق کرتا ہے، جو مخصوص آغاز اور اختتامی اقدار کے درمیان مساوی فاصلہ رکھتا ہے:

even_space = np.linspace(0, 1, 5)
print(even_space) 

عناصر تک رسائی اور ترمیم کرنا

NumPy سرنی میں عناصر تک رسائی اور ترمیم کرنا بدیہی ہے:

print(arr[2]) arr[2] = 6
print(arr) 

کثیر جہتی صفوں کے لئے بہت زیادہ ایسا ہی کرنا:

print(matrix[1, 2]) matrix[1, 2] = 10
print(matrix)

دوسری قطار میں عنصر کی قدر کو تبدیل کرے گا (انڈیکس 1) اور تیسرا کالم (انڈیکس 2):

[[1 2 3] [4 5 20] [7 8 9]]

ایک صف کی شکل کو تبدیل کرنا

NumPy صفوں پر ہیرا پھیری اور کام کرنے کے لیے بہت سے افعال اور طریقے پیش کرتا ہے۔ مثال کے طور پر، آپ استعمال کر سکتے ہیں reshape() طریقہ ایک صف کی شکل تبدیل کریں. کہتے ہیں کہ ہمارے پاس ایک سادہ صف ہے:

import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
print("Original Array:")
print(arr) 

اور ہم اسے 3×4 میٹرکس میں تبدیل کرنا چاہتے ہیں۔ آپ کو بس استعمال کرنے کی ضرورت ہے۔ reshape() دلائل کے طور پر منظور شدہ مطلوبہ جہتوں کے ساتھ طریقہ:


reshaped_arr = arr.reshape(3, 4)
print("Reshaped Array (3x4):")
print(reshaped_arr)

اس کا نتیجہ یہ ہوگا:

Reshaped Array (3x4):
[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]]

میٹرکس ضرب

۔ numpy.dot() کے لیے طریقہ استعمال کیا جاتا ہے۔ میٹرکس ضرب. یہ دو صفوں کا ڈاٹ پروڈکٹ لوٹاتا ہے۔ ایک جہتی صفوں کے لیے، یہ ہے۔ اندرونی مصنوعات صفوں کی 2-جہتی صفوں کے لیے، یہ اس کے برابر ہے۔ میٹرکس ضرب، اور ND کے لیے، یہ ایک ہے۔ مجموعی مصنوعات پہلی صف کے آخری محور پر اور دوسری صف کے دوسرے سے آخری محور پر۔

آئیے دیکھتے ہیں کہ یہ کیسے کام کرتا ہے۔ سب سے پہلے، آئیے دو 1-D صفوں کے ڈاٹ پروڈکٹ کا حساب لگائیں (ویکٹرز کی اندرونی پیداوار):

import numpy as np vec1 = np.array([1, 2, 3])
vec2 = np.array([4, 5, 6])
dot_product_1d = np.dot(vec1, vec2) print("Dot product of two 1-D arrays:")
print(dot_product_1d) 

اس کا نتیجہ یہ ہوگا:

Dot product of two 1-D arrays:
32

32 درحقیقت، دو صفوں کی اندرونی پیداوار ہے - (14 + 25 + 3*6). اگلا، ہم دو 2-D صفوں کا میٹرکس ضرب انجام دے سکتے ہیں:


mat1 = np.array([[1, 2], [3, 4]])
mat2 = np.array([[2, 0], [1, 3]])
matrix_product = np.dot(mat1, mat2) print("Matrix multiplication of two 2-D arrays:")
print(matrix_product) 

جو ہمیں دے گا:

Matrix multiplication of two 2-D arrays:
[[ 4 6] [10 12]]

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

نتیجہ

Arrays، کمپیوٹر سائنس اور پروگرامنگ کا سنگ بنیاد ہے، نے مختلف ایپلی کیشنز اور ڈومینز میں بار بار اپنی قابلیت کو ثابت کیا ہے۔ ازگر میں، ڈیٹا کا یہ بنیادی ڈھانچہ، اپنے مختلف اوتاروں جیسے فہرستوں کے ذریعے array ماڈیول، اور طاقتور NumPy arrays، ڈویلپرز کو کارکردگی، استعداد اور سادگی کا امتزاج پیش کرتا ہے۔

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

ٹائم اسٹیمپ:

سے زیادہ Stackabuse