نوٹ: NumPy Numarray کا جانشین ہے اور NumArray کو تبدیل کرنے کے لئے استعمال کیا جاتا ہے۔ SAGE NumPy اور کئی دیگر ٹولز پر مبنی ایک مربوط ریاضی کا سافٹ ویئر پیکج ہے جس کا مقصد میگما ، میپل ، ریاضی اور میٹلب جیسے ٹولز کو تبدیل کرنا ہے۔ آج میں آن لائن NumPy کے بارے میں کچھ تلاش کرنا چاہتا تھا اور NumPy کے ساتھ ریورس میٹرکس تلاش کرنے کی کوشش کر رہا تھا، لیکن مجھے چینی زبان میں کوئی معلومات نہیں مل سکی، فورم پر کچھ لوگوں نے مجھ سے پوچھا کہ میں python کے ساتھ میٹرکس کیسے بنا سکتا ہوں، لیکن کسی نے جواب نہیں دیا۔ لہذا مجھے NumPy کی سرکاری دستاویزات مل گئیں، جن میں سے ایک چھوٹا سا حصہ میٹرکس آبجیکٹ کے بارے میں تھا، لہذا میں نے اس حصے کو چینی زبان میں ترجمہ کیا، تھوڑی سی مدد کی، وقت کم تھا، ہجے کی غلطیوں کی جانچ پڑتال نہیں کی گئی تھی، کوئی مسئلہ نہیں تھا۔ معاف کیجئے گا۔ مترجم: Keengle.
میٹرکس کی قسم ndarray کی قسم سے وراثت میں ملتی ہے اور اس وجہ سے ndarray کی تمام اعداد و شمار کی خصوصیات اور طریقوں پر مشتمل ہے۔ میٹرکس کی قسم اور ndarray کی قسم کے درمیان چھ اہم اختلافات ہیں جو غیر متوقع نتائج کا باعث بنتے ہیں جب آپ میٹرکس آبجیکٹ کو صفوں کے طور پر کام کرتے ہیں۔
1) میٹرکس آبجیکٹ کو ایک Matlab طرز کی سٹرنگ کا استعمال کرتے ہوئے بنایا جا سکتا ہے، یعنی ایک سٹرنگ جس میں خالی جگہوں کے ساتھ الگ الگ صفیں ہوتی ہیں اور اس کے بعد عددی اعداد ہوتے ہیں۔
2) میٹرکس آبجیکٹ ہمیشہ دو جہتی ہوتے ہیں۔ اس میں بہت زیادہ اثرات مرتب ہوتے ہیں۔ مثال کے طور پر ، m.ravel (()) کی واپسی کی قیمت دو جہتی ہے ، اور ممبر کے انتخاب کی واپسی کی قیمت بھی دو جہتی ہے ، لہذا ترتیب کا رویہ صف سے مختلف ہوگا۔
3) میٹرکس کی قسم کے ضربات میں صف کے ضربات کا احاطہ کیا جاتا ہے، اور اس میں میٹرکس کے ضرب کے آپریشن کا استعمال کیا جاتا ہے۔ جب آپ میٹرکس کی واپسی کی قدر وصول کرتے ہیں تو، اس بات کو یقینی بنائیں کہ آپ ان افعال کے معنی کو سمجھتے ہیں. خاص طور پر، حقیقت یہ ہے کہ تقریب asanarray ((m) ایک میٹرکس واپس کرے گا، اگر یہ ایک m میٹرکس ہے.
4) میٹرکس کی قسم کی جڑ کی کارروائی بھی اس سے پہلے کی جڑ کی کارروائیوں پر محیط ہے ، جو میٹرکس کی جڑ کا استعمال کرتی ہے۔ اس حقیقت کی بنیاد پر ، ایک بار پھر یاد دلائیں کہ اگر آپ میٹرکس کی جڑ کو بطور پیرامیٹر استعمال کرتے ہیں تو اس کی درخواست کریں arasanarray ((...) جیسا کہ اوپر ہے۔
5) میٹرکس کی ڈیفالٹ array_priority 10.0 ہے ، لہذا ndarray اور میٹرکس آبجیکٹ کے ساتھ مل کر آپریشن ہمیشہ میٹرکس کو واپس کرتا ہے۔
6) میٹرکس میں کئی مخصوص خصوصیات ہیں جو حساب کتاب کو آسان بناتی ہیں ، ان خصوصیات میں شامل ہیں:
(a).T -- واپس اپنی جگہ پر
(ب).H - اپنے گونج کی جگہ کو واپس
©.I -- اپنے ہی ریورس میٹرکس کو واپس کریں
(d).A -- اپنے اعداد و شمار کو واپس کرنے والے 2D صفوں کا ایک نقطہ نظر ((کوئی کاپی نہیں کی گئی)
میٹرکس کلاس ndarray کی ایک Python کی ذیلی کلاس ہے۔ آپ اس عمل کو سیکھ کر اپنی ndarray کی ذیلی کلاس بھی بنا سکتے ہیں۔ میٹرکس آبجیکٹ کو دوسرے میٹرکس آبجیکٹ، الفاظ، سٹرنگز، یا کسی اور کے ساتھ بھی بنایا جا سکتا ہے جو کہ ndarray کے بطور تبدیل کیا جا سکتا ہے۔ مزید برآں، NumPy میں، میٹرکس کے لئے میٹرکس کا ایک نام ہے۔
مثال 1: اسٹرنگ کے ساتھ ایک میٹرکس کی تعمیر
import numpy as np
a=np.mat('1 2 3; 4 5 3')
print (a*a.T).I
[[ 0.29239766 -0.13450292]
[-0.13450292 0.08187135]]
مثال 2: نچلی ترتیب کا استعمال کرتے ہوئے ایک میٹرکس کی تعمیر
np.matrix([[ 1.+0.j, 5.+0.j, 10.+0.j],
[ 1.+0.j, 3.+0.j, 0.+4.j]])
مثال 3: ایک صف کے ساتھ ایک میٹرکس کی تعمیر
np.mat( np.random.rand(3,3) ).T
np.matrix([[ 0.81541602, 0.73987459, 0.03509142],
[ 0.14767449, 0.60539483, 0.05641679],
[ 0.43257759, 0.628695 , 0.47413553]])
میٹرکس ((data، dtype=None، copy=True)) اعداد و شمار کو میٹرکس میں تبدیل کیا جاتا ہے۔ اگر ڈی ٹائپ نون ہے تو ، ڈیٹا کی قسم ڈیٹا کے مواد سے طے ہوتی ہے۔ اگر کاپی سچ ہے تو ، ڈیٹا میں موجود ڈیٹا کی کاپی کی جاتی ہے ، ورنہ اصل ڈیٹا بفر استعمال کیا جاتا ہے۔ اگر ڈیٹا کا بفر علاقہ نہیں ملا ہے تو ، یقینا data ڈیٹا کی کاپی کی جاتی ہے۔ نوٹ: میٹرکس میٹرکس دراصل ایک قسم ہے ، لہذا جب آپ مثال تشکیل دیتے ہیں تو ، آپ کو اس کی ضرورت نہیں ہے۔候会调用matrix.new(میٹرکس، ڈیٹا، ڈی ٹائپ، کاپی) میٹ یہ صرف میٹرکس کا ایک عرفی نام ہے۔ Asmatrix ((data، dtype=None) ڈیٹا واپس کرتا ہے جو نقل نہیں کیا گیا ہے۔ اس کا برابر ہے میٹرکس ((data, dtype, copy=False) ‒) Bmat ((obj، ldict=None، gdict=None) ایک سٹرنگ، نچلے درجے کی سیریز یا ایک صف کا استعمال کرتے ہوئے ایک میٹرکس بنائیں۔ یہ کمانڈ آپ کو دوسرے اشیاء سے میٹرکس بنانے کی اجازت دیتی ہے۔ اس میں جب obj ایک سٹرنگ ہے تو صرف تبھی تبھی تبھی جب آپریٹر کی طرف سے استعمال کیا جاتا ہے جب آپریٹر کی طرف سے استعمال کیا جاتا ہے تب ہی آپریٹر کی طرف سے استعمال کیا جاتا ہے۔
A=np.mat('2 2; 2 2'); B=np.mat('1 1; 1 1');
print(np.bmat('A B; B A'))
[[2 2 1 1]
[2 2 1 1]
[1 1 2 2]
[1 1 2 2]]
تحریر: سو فرانک