ميٽرڪس ضرب لڪير الجبرا ۾ هڪ بنيادي عمل آهي.
اسان عام طور تي ان کي ڪيترن ئي ايپليڪيشنن ۾ استعمال ڪندا آهيون جهڙوڪ تصويري پروسيسنگ، مشين لرننگ، ۽ ٻيا ڪيترائي. NumPy سائنسي ڪمپيوٽنگ لاءِ هڪ قابل ذڪر پٿون پيڪيج آهي.
بهرحال، هن پوسٽ ۾، اسان NumPy استعمال ڪرڻ کان سواءِ پٿون ۾ ميٽرڪس ضرب ڪرڻ لاءِ مختلف طريقن تي نظر وجهنداسين.
اسان استعمال ڪنداسين ناپسنديده لوپ، تعمير ٿيل نقشو() فنڪشن، ۽ فهرست سمجھڻ.
ان کان علاوه، اسان هر حڪمت عملي جي فائدن ۽ نقصانن تي نظر ڪنداسين، انهي سان گڏ انهن مان هر هڪ کي لاڳو ڪرڻ لاء. جيڪڏهن توهان لڪير واري الجبرا ۾ نوان آهيو ۽ ميٽرڪس ضرب بابت وڌيڪ سکڻ چاهيو ٿا؛ پڙهڻ جاري رکو.
اسان ڪٿي استعمال ڪريون ميٽرڪس ضرب؟
ميٽرڪس ضرب ۾ استعمال ٿيندو آهي ڪمپيوٽر گرافڪس 2D ۽ 3D بصري کي تبديل ڪرڻ لاء. مثال طور، توھان گھمائي سگھو ٿا، ماپ ڪري سگھو ٿا، ۽ اسڪرين تي شيون ترجمو ڪريو. ميٽرڪس تصويري پروسيسنگ ۾ استعمال ڪيا ويا آهن تصويرن کي تصويرن جي تصويرن جي طور تي پيش ڪرڻ لاءِ. ان کان علاوه، ميٽرڪس استعمال ڪري سگھجن ٿيون آپريشن ڪرڻ لاءِ جيئن تصويري فلٽرنگ.
اسان پڻ استعمال ڪريون ٿا ميٽرڪس ۾ مشين جي سکيا. اهي اسان کي ڊيٽا ۽ ماڊل پيٽرولر جي نمائندگي ڪرڻ ۾ مدد ڪري سگھن ٿا. اسان ڪيترائي آپريشن ڪري سگھون ٿا، جيئن ڪمپيوٽنگ ڊاٽ پروڊڪٽس ۽ ميٽرڪس-ویکٹر پراڊڪٽس.
يقينا، هي آپريشن سائنسي عملن ۾ پڻ انتهائي فائدي وارو آهي. اسان ان کي فزڪس ۽ انجنيئرنگ ۾ استعمال ڪري سگھون ٿا جسماني مقدار بيان ڪرڻ لاءِ. ان ڪري، اسان ویکٹر ۽ ٽينسر سان ڪم ڪري سگھون ٿا.
اسان NumPy استعمال ڪرڻ جو انتخاب ڇو نٿا ڪري سگهون؟
جڏهن ته NumPy هڪ آهي Python لائبريري, اهو هميشه نه آهي مثالي اختيار ميٽرڪس ضرب لاءِ. اسان شايد NumPy استعمال ڪرڻ جو انتخاب نه ڪري سگھون ڇاڪاڻ ته سائز ۽ انحصار، سکيا، ۽ ورثي سسٽم.
Python جي تعمير ٿيل افعال کي استعمال ڪندي يا ڪسٽم ڪوڊ کي ترقي ڪرڻ ڪجهه مثالن ۾ وڌيڪ ڪارائتو ٿي سگھي ٿو. اهو نوٽ ڪرڻ ضروري آهي، جيتوڻيڪ، NumPy هڪ مضبوط لائبريري آهي. ان کان علاوه، توھان ان کي استعمال ڪري سگھوٿا ميٽرڪس ضرب لاءِ.
هاڻي اچو ته هڪ نظر وجهون ته اسان NumPy کان سواءِ ميٽرڪس ضرب ڪيئن حاصل ڪري سگهون ٿا.
Nested loops جو طريقو
nested loops ٽيڪنڪ استعمال ڪري ٿي nested loops کي پٿون ۾ ميٽرڪس ضرب ڪرڻ لاءِ. فنڪشن هر ميٽرڪس عنصر تي ٻيهر ورجائي ٿو. ۽، اھو انھن کي گھڻائي ٿو گھڙين جي ھڪڙي سيريز استعمال ڪندي. فنڪشن نتيجو ڏئي ٿو، جيڪو نئين ميٽرڪس ۾ ذخيرو ٿيل آهي.
اهو طريقو سمجهڻ لاء سڌو آهي. بهرحال، اهو ٻين طريقن وانگر ڪارائتو نه ٿي سگهي، خاص طور تي وڏن ميٽرڪ لاء. اڃان تائين، اهو توهان لاءِ هڪ شاندار انتخاب آهي جيڪڏهن توهان لڪير واري الجبرا لاءِ نوان آهيو.
def matrix_multiplication(A, B):
# Determine the matrices' dimensions.
rows_A = len(A)
cols_A = len(A[0])
rows_B = len(B)
cols_B = len(B[0])
# نتيجو ميٽرڪس کي صفر تي سيٽ ڪريو.
result = [[0 for row in range(cols_B)] for col in
range(rows_A)]
# Iterate through rows of A
for s in range(rows_A):
# Iterate through columns of B
for j in range(cols_B):
# Iterate through rows of B
for k in range(cols_A):
result[s][j] += A[s][k] * B[k][j]
return result
اچو ته هڪ مثال ڏيون ته اهو ڪيئن ڪجي. توھان صرف ھن مثال کي جانچڻ لاءِ ھيٺ ڏنل ڪوڊ جون ھي لائينون شامل ڪري سگھو ٿا.
# Sample matrices
A = [[1, 4, 3], [4, 9, 6]]
B = [[7, 8], [9, 10], [11, 12]]
# Perform matrix multiplication
result = matrix_multiplication(A, B)
# Print the result
print(result)
# Output: [[76, 84], [175, 194]]
فائدا:
- سمجھڻ ۾ آسان.
- نئين سکندڙن لاءِ يا انهن لاءِ وڏو آهي جيڪي ميٽرڪس ضرب جي گهڻي فهم جي ڳولا ڪن ٿا.
وڌڻ:
- متبادل ٽيڪنالاجي جيتري اثرائتو نه آهي، خاص طور تي وڏن ميٽرڪ لاءِ.
- اهو پڙهڻ جي قابل ناهي جيئن متبادل طريقن سان.
map() فنڪشن جو طريقو
نقشي () فنڪشن جو طريقو پائٿون ۾ ميٽرڪس ضرب ڪرڻ لاءِ متبادل طريقو مهيا ڪري ٿو. هن طريقي ۾، اسان تعمير ٿيل نقشي () فنڪشن استعمال ڪندا آهيون. انهيء ڪري، اسان هڪ فنڪشنل پروگرامنگ ٽول استعمال ڪندا آهيون جيڪو هر هڪ قابل عنصر عنصر (فهرست، ٽوپل، وغيره) تي مهيا ڪيل فنڪشن لاڳو ڪري ٿو. انهي سان گڏ، نقشو () فنڪشن قبول ڪري ٿو ٻه پيٽرولر، هڪ فنڪشن ۽ هڪ ٻيهر قابل. ۽، اهو هڪ آئٽرٽر واپس ڏئي ٿو جيڪو فعل کي هر قابل عمل عنصر تي لاڳو ڪري ٿو.
هن طريقي ۾، اسان ميٽرڪس جي هر ميمبر ذريعي وڃون ٿا ۽ nested map() فنڪشن استعمال ڪندي ضرب ڪندا آهيون.
زپ () فنڪشن متوازي ۾ ميٽرڪس جي هر عنصر ذريعي ٻيهر ڪرڻ لاء استعمال ڪيو ويندو آهي.
آخرڪار، sum() فنڪشن استعمال ڪيو ويندو آهي نتيجن کي شامل ڪرڻ لاء.
def matrix_multiplication(A, B):
# To get the dimensions of the matrices
rows_A = len(A)
cols_A = len(A[0])
rows_B = len(B)
cols_B = len(B[0])
# We use map() function for multiplication.
result = [[sum(a * b for a, b in zip(row_a, col_b)) for
col_b in zip(*B)] for row_a in A]
return result
هاڻي، ٻيهر، اسان اسان جي ڪوڊ کي هڪ مثال سان جانچ ڪري سگهون ٿا.
# Example matrices
A = [[3, 2, 3], [4, 5, 6]]
B = [[7, 8], [9, 10], [11, 12]]
# Use map() function to perform matrix multiplication
result = list(map(lambda x: list(map(lambda y: sum(i*j
for i,j in zip(x,y)), zip(*B))), A))
# Print the result
print(result)
# Output: [[72, 80], [139, 154]]
فائدن
- اسٽيڪ ٿيل لوپس جي انداز کان وڌيڪ اثرائتو
- اهو ڪوڊ کي آسان ڪرڻ لاءِ فنڪشنل پروگرامنگ استعمال ڪري ٿو.
وڌڻ
- ڪجهه ماڻهو جيڪي فنڪشنل پروگرامنگ کان واقف نه آهن شايد ان کي گهٽ پڙهي سگهجي ٿو.
- اهو nested loops ٽيڪنڪ کان گهٽ سمجھڻ وارو آهي.
فهرست سمجھڻ جو طريقو
لسٽ سمجھڻ توهان کي ڪوڊ جي هڪ قطار ۾ نئين لسٽ ٺاهڻ جي قابل بڻائي ٿي. انهيء ڪري، هي هڪ موجوده فهرست جي هر ميمبر تي هڪ اظهار لاڳو ڪندي آهي.
هن طريقي ۾، ضرب هر ميٽرڪس ميمبر ذريعي بار بار بار بار ڪندي ڪيو ويندو آهي. اسان استعمال ڪري رهيا آهيون پرت واري فهرست فهم.
# Sample matrices
A = [[1, 12, 3], [14, 5, 6]]
B = [[7, 8], [9, 10], [12, 12]]
# Matrix multiplication using list comprehension
result = [[sum(A[i][k] * B[k][j] for k in range(len(A[0])))
for j in range(len(B[0]))] for i in range(len(A))]
# Print the result
print(result)
[[151, 164], [215, 234]]
فائدا
- نقشي جي مقابلي ۾ () فنڪشن جو طريقو، ننڍو ۽ وڌيڪ پڙهڻ لائق.
وڌڻ
- اهو نقشو () فنڪشن استعمال ڪرڻ کان گهٽ اثرائتو ٿي سگهي ٿو، خاص طور تي وڏن ميٽرڪس لاءِ.
- اهو nested loops جي انداز کان وڌيڪ ڏکيو آهي.
ٿڪل
هن پوسٽ ۾، اسان NumPy استعمال ڪرڻ جي متبادل تي غور ڪيو جڏهن Python ۾ ميٽرڪس کي وڌايو. اسان نسٽڊ لوپس، بلٽ ان ميپ() فنڪشن، ۽ لسٽ سمجھڻ ۾ ميٽرڪس ضرب ڪيو.
بهترين حڪمت عملي توهان جي منصوبي جي خاص ضرورتن تي ڀروسو ڪندي.
هر هڪ حڪمت عملي جا پنهنجا فائدا ۽ نقصان آهن. پڪ ڪرڻ لاءِ ته فنڪشن صحيح طريقي سان ڪم ڪري رهيو آهي، اهو هڪ سٺو خيال آهي ته ڪجهه ٽيسٽ ڪيس شامل ڪرڻ سان مختلف ميٽرڪس طول و عرض ۽ قدرن سان.
توهان کي پڻ شامل ڪرڻ گهرجي ڪجهه ڪارڪردگي جا امتحان انهي جي مقابلي لاءِ ته اهي طريقا ڪيئن عمل ۾ اچن ٿا.
جواب ڇڏي وڃو