نم پائی - ڈیٹا سائنس کی جانب پہلا قدم

نم پائی جو کہ نمیریکل پائتھن کا مخفف ہے ایک پائتھن پیکیج، لائبریری اور پائتھن موڈیول ہے۔ نمیریکل کمپیوٹنگ کی بات کی جائے تو نم پائی کی وسیع و عریض کامیابی کو نظر انداز کرنا ناممکن ہے۔ اس کے اصل مصنف Travis Oliphant ہیں۔

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

سوال تو یہ اٹھتا ہے کہ ٹینسر اصل میں کیا ہے؟ اگر آپ اسکیلر، ویکٹرز اور میٹرکس کی سمجھ رکھتے ہیں تو ہم کہہ سکتے ان کی وضاحت ٹینسر کہلاتی ہے لیکن بات یہی ختم نہیں ہوتی یہ اس بھی آگے کے ڈائمنشن کی بھی وضاحت کرتی ہے۔

آئیں اسے سمجھتے ہیں کہ ٹینسر کیا بلا ہے،

اسکیلر:

اسکیلر quantity کو ہم کسی عدد سے واضح کرتے ہیں جیسے 2، 51، 131 وغیرہ۔ چونکہ کسی ایک عدد سے ڈائمنشن کی وضاحت نہیں ہوتی تو ہم اسے زیرو ڈائمنشنل ٹینسر کہتے ہیں۔

ویکٹرز:

ویکٹرز کی وضاحت کمپیوٹر سائنس میں ایرے (جو کہ پائیتھن لسٹ کی طرح کا ہی ایک ڈیٹا اسٹرکچر ہے) سے کی جاتی ہے۔ تصور کریں ہمارے پاس دو جہتی گراف ہے جس کی ایک جہت (ایکسیس) کو ہم x کہہ لیتے ہیں جو کہ افقی (horizontal) لکیر کی ترجمانی کرے گا جبکہ دوسری جہت جو عمودی (vertical) ہے جسے ہم y جہت (ایکسیس) کہہ لیتے ہیں۔

اب اس گراف میں ایک اتفاقی نقطہ (رینڈم پوائنٹ) لگا دیتے ہیں۔ آپ اس نقطے سے ایک عمودی اور ایک افقی (vertical اور horizontal) لکیر کو x اور y جہت کی لکیر تک لے جائیں گے۔

اب جہاں یہ لکیریں ٹکرائیں گی ہم وہاں سے ان کی قیمت یا ویلیو نکال لیں گے۔ فرض کریں یہ ویلیوز (4،6) ہیں اب وہ جگہ جہاں x اور y کی جہتیں ٹکرا رہی ہیں جو کہ origin کہلاتا ہے وہاں سے ایک لکیر نقطے کی جانب کھینچے گے اور یہ لائین ویکٹر کی وضاحت کرے گی اور یہی اس کی سمت بھی تعین کرے گی۔ قصہ مختصر، پوائنٹ کی ویلیوز ہی اصل میں ویکٹر کی قیمت تعین کرے گی جو کہ دو جہتی گراف پر ہے۔ ہم اسے دو جہتی ویکٹر کہیں گے۔

اسے ہم یوں لکھیں گے۔ جسے ہم پائتھن کی زبان میں لسٹ بھی کہہ سکتے ہیں۔

[4, 6]

لیکن ہم اسے ٹینسر کی زبان میں 1D ٹینسر کہیں گے۔

جیسے جیسے ویکٹرز کے ایلیمنٹ بڑھتے جائیں گے، ویسے ویسے اس کی جہتوں میں اضافہ ہوتا جائے گا جبکہ ہم اسے 1D ٹینسر ہی تصور کرینگے۔

1D Tensor = nD Vector

یہاں n سے مراد ویکٹر کی ڈائمنشن ہے۔

اسی طرح تھری ڈی ویکٹر کو ہم ایسے واضح کرینگے۔

[2, 3, 5] 

یہاں پہلی ویلیو x-axis, دوسری ویلیو y-axis اور تیسری ویلیو z-axis کہلائے گی۔ جبکہ ممکنہ طور پر ہم اس ایرے کو 1D tensor ہی کہیں گے۔

چونکہ ریاضیات میں ڈائمنشن کی کوئی حد مقرر نہیں تو یہ لامحدود ہوسکتی ہیں لیکن کمپیوٹر سائنس میں ہم لامحدودیت پر یقین نہیں رکھتے بلکہ ہمیں محدودیت پر رہتے ہوئے ہی کام کرنا پڑتا ہے۔ لہذا آپ محدودیت کے دائرے میں رہتے ہوئے ان گنت ویکٹر ڈائمنشن بناسکتے ہیں۔ لیکن یاد رہے ہم انہیں 1D ٹینسر ہی تصور کرینگے۔

میٹریسیس اور 2D tensor:

اسے ہم ایرے کی ایرے، لسٹ کی لسٹ یا ویکٹرز کی لسٹ بھی کہہ سکتے ہیں۔

 [[1, 2, .., n], [1, 2, .., n], ...., [1, 2, .., n]]

اور اگر میں اسے کچھ اچھی طرح دکھاوں تو یہ اس طرح دیکھائی دے گا۔

[[1, 2, .., n],
[1, 2, .., n],
....,
[1, 2, .., n]]

ہم اسے 2D tensor کہتے ہیں، دو جہتی ایرے اور حرف عام میں یہ میٹریکس کی ترجمانی کرتے ہیں۔

جیسے

[[1, 2, 3], [4, 2, 6], [1, 5, 4]]

یا


[[1, 2,  3], 
[4, 2, 6],
[1, 5, 4]]

ویکٹر کی طرح 2D tensor کے ان گنت ایلیمنٹ ہوسکتے ہیں، یہاں ہر ایرے یا ویکٹر ایک ایلیمنٹ تصور ہوگا۔

جیسے [1, 2, 3] ایک ایلیمنٹ ہے اور اسی طرح یہاں تین ایلیمنٹ موجود ہیں جسے ہم سطر یا row کہہ سکتے ہیں جو کہ افقی ہیں اور اسی طرح اگر ہم انہیں عمودی پڑھے تو یہ ان کے columns کہلائے گے جیسے ہم پہلی عمودی ویلیوز کو دیکھیں جو کہ 1، 4، 1 ہے جو کہ پہلا کالم ہے، اسی طرح یہاں 3 سطر row اور تین column موجود ہیں، جو کہ 3*3 ویلیو کا اسکوائر ہے۔

3 ڈی ٹینسر:

ہم اسے metrices یا ٹو ڈی ایرے کی لسٹ کہہ سکتے ہیں۔ جیسے

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

یا


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

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

اب یہاں ہر شیٹ کی لمبائی اور چوڑائی تو یکساں تصور کی جائے گی ہی لیکن ساتھ ساتھ موٹائی بھی واضح ہونے لگے گی جو شیٹ کی تعداد پر منحصر ہے۔ اسی طرح ہم میٹرکس یا 2 ڈی ٹینسر کی مجموعہ کو 3 ڈی ٹینسر کہہ سکتے ہیں۔

یعنی ہم اوپر دی گئی مثال کو دیکھیں تو یہاں دو میٹریکس موجود ہیں جو کہ ٹیسر کے ایلیمنٹ شمار ہونگے یا شیٹ کہہ لیں، جبکہ ہر میٹرکس 3 * 3 ایلیمنٹ کا سیٹ ہے۔

تھری ڈی ٹینسر کا عموماً استعمال تصویری ڈیٹا کیلئے کیا جاتا ہے۔ ایک RGB امیج تین چینلز پر مبنی ہوتی ہے ہر چینل (یہاں ایک چینل سے مراد ایک میٹرکس ہے) ایک کلر کی وضاحت کرتا ہی جو کہ لال، ہرے اور نیلے رنگ جو ظاہر کرتی اور ان رنگوں کا مجموعہ مزید رنگ کو واضح کرتے ہیں۔

فار ڈی اور n ڈئمنشن ٹینسر:

انسانی دماغ تھری ڈائمنشن سے زیادہ ڈائمنشن کا تصور نہیں کرسکتا اور انہیں لفظی معنوں میں سمجھایا بھی نہیں جاسکتا۔ لیکن جب بات ریاضی کو ہو تو انہیں فارمولائز ضرور کیا جاسکتا ہے۔

جیسا کہ ایک تصویر تین چینلز کا مجموعہ ہے، لیکن اگر ہمارے پاس ایک سے زائد تصویر ہو تو؟ مطلب ایک تصویر کلی طور پر 3D tensor کی وضاحت کررہی تو ان کا مجموعہ 4D tensor کہلائے گا۔ جیسے

4DTensor = [image 1, image 2, ..., image n] 

یہاں ہر امیج ایک تھری ڈی ٹینسر ہے۔

اب اسی طرح 4DTensor ٹینسر کا مجوعہ 5DTensor کہلائے گا اور اسی طرح nD Tensor مجموعہ ہوگا (n-1) ڈائمنشنل ٹینسر کا۔

یہاں 4ڈی کو عموماً امیج کا مجوعہ اور صوتی ڈیٹا کیلئے واضح کیا جاتا ہے جبکہ یہاں 5 ڈی ٹینسر کو ویڈیو کی وضاحت کیلئے استعمال کیا جاتا ہے۔ جیسا کہ ویڈیو تصویروں کا مجوعہ جو کہ ایک خاص رفتار سے چلایا جاتا ہے جسے ہم فریم ریٹ کہتے ہیں یعنی ایک سیکنڈ میں کتنی تصویریں چلائی گئی اور اگر ویڈیو ایک منٹ کی ہو تو 60 سیکنڈ میں کتنے فریم چلائے گئے۔

60 * 24 *3 * 3 * 3 

یعنی 3*3 ریزولوشن کی 24 rgb تصویریں 60 سیکنڈ تک چلائی گئی۔

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

فی الحال اگر یہ کانسپٹ سمجھ آجائیں تو کوڈنگ سمجھنا کوئی مشکل کام نہیں۔

ایک تبصرہ شائع کریں

Please Select Embedded Mode To Show The Comment System.*

جدید تر اس سے پرانی