ম্যাট্রিক্স ট্রান্সপোজ করা মানে এর কলামগুলোকে রোয়ে রূপান্তর করা। একটি উদাহরণ দিয়ে বুঝি ট্রান্সপোজের পর কীভাবে দেখাবে।
ধরুন আপনার মূল ম্যাট্রিক্স এমন কিছু:
x = [[1,2], [3,4], [5,6]]
উপরের ম্যাট্রিক্স "x"-এ দুটি কলাম রয়েছে, যেগুলো ধারণ করছে 1, 3, 5 এবং 2, 4, 6।
সুতরাং যখন আমরা উপরের ম্যাট্রিক্স "x"-কে ট্রান্সপোজ করব, কলামগুলো রোয়ে রূপান্তরিত হয়বে। সুতরাং উপরের ম্যাট্রিক্সের ট্রান্সপোজড ভার্সন এমন কিছু দেখাবে:
x1 = [[1, 3, 5], [2, 4, 6]]
তাহলে আমাদের আরেকটি ম্যাট্রিক্স 'x1' পেলাম, যা আলাদাভাবে অর্গানাইজড এবং ভিন্ন ভ্যালু ভিন্ন জায়গায়।
পাইথনে এটি সম্পন্ন করার кільটি উপায় নিচে দেওয়া হলো:
পদ্ধতি ১ - নেস্টেড লুপ ব্যবহার করে ম্যাট্রিক্স ট্রান্সপোজ -
# Original Matrix
x = [[1,2], [3,4], [5,6]]
result = [[0, 0, 0], [0, 0, 0]]
# Iterate through rows
for i in range(len(x)):
# Iterate through columns
for j in range(len(x[0])):
result[j][i] = x[i][j]
for r in result:
print(r)
ফলাফল
[1, 3, 5] [2, 4, 6]
পদ্ধতি ২ - নেস্টেড লিস্ট কম্প্রিহেনশন ব্যবহার করে ম্যাট্রিক্স ট্রান্সপোজ।
# Original Matrix
x = [[1,2], [3,4], [5,6]]
result = [[x[j][i] for j in range(len(x))] for i in range(len(x[0]))]
for r in result:
print(r)
ফলাফল
[1, 3, 5] [2, 4, 6]
লিস্ট কম্প্রিহেনশন আমাদেরকে সংক্ষিপ্ত কোড লিখতে দেয় এবং পাইথনে এটিকে ঘন ঘন ব্যবহার করা উচিত।
পদ্ধতি ৩ - Zip ব্যবহার করে ম্যাট্রিক্স ট্রান্সপোজ
# Original Matrix
x = [[1,2], [3,4], [5,6]]
result = map(list, zip(*x))
for r in result:
print(r)
ফলাফল
[1, 3, 5] [2, 4, 6]
পদ্ধতি ৪ - numpy লাইব্রেরি ব্যবহার করে ম্যাট্রিক্স ট্রান্সপোজ। Numpy লাইব্রেরি একটি অ্যারে-প্রসেসিং প্যাকেজ যা বড় মাল্টি-ডাইমেনশনাল অ্যারে দক্ষতার সাথে ম্যানিপুলেট করার জন্য তৈরি।
import numpy # Original Matrix x = [[1,2], [3,4], [5,6]] print(numpy.transpose(x))
ফলাফল
[[1 3 5] [2 4 6]]