मैट्रिक्स ट्रांसपोज़ का अर्थ है पंक्तियों को कॉलम और कॉलम को पंक्तियों में बदलना।
उदाहरण
# मूल मैट्रिक्स (3x2)
x = [[1, 2],
[3, 4],
[5, 6]]
# ट्रांसपोज़ (2x3)
x1 = [[1, 3, 5],
[2, 4, 6]]
विधि 1: नेस्टेड लूप (क्लासिक)
x = [[1, 2], [3, 4], [5, 6]]
rows = len(x)
cols = len(x[0])
result = [[0] * rows for _ in range(cols)]
for i in range(rows):
for j in range(cols):
result[j][i] = x[i][j]
for r in result:
print(r)
# [1, 3, 5]
# [2, 4, 6]
विधि 2: नेस्टेड लिस्ट कॉम्प्रिहेंशन (पायथनिक)
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)
विधि 3: zip() फ़ंक्शन (सबसे संक्षिप्त)
x = [[1, 2], [3, 4], [5, 6]]
result = list(map(list, zip(*x)))
# या पायथन 3 में:
result = [list(row) for row in zip(*x)]
for r in result:
print(r)
*x लिस्ट को अनपैक करता है, zip कॉलम-वाइज ग्रुप करता है।
विधि 4: NumPy (बड़े मैट्रिक्स के लिए अनुशंसित)
import numpy as np
x = [[1, 2], [3, 4], [5, 6]]
arr = np.array(x)
transposed = arr.T # या np.transpose(arr)
print(transposed)
# [[1 3 5]
# [2 4 6]]
तुलना
| विधि | पक्ष | विपक्ष |
|---|---|---|
| नेस्टेड लूप | समझने में आसान, कोई डिपेंडेंसी नहीं | धीमा, वर्बोज़ |
| लिस्ट कॉम्प्रिहेंशन | संक्षिप्त, पायथनिक | बड़े मैट्रिक्स के लिए धीमा |
| zip() | बहुत संक्षिप्त, पठनीय | रेक्टेंगुलर मैट्रिक्स मानता है |
| NumPy | बहुत तेज़, बहुआयामी सपोर्ट | बाहरी डिपेंडेंसी |
नोट
- सभी विधियां मानती हैं कि मैट्रिक्स रेक्टेंगुलर है (सभी पंक्तियों की लंबाई समान)।
- अनियमित मैट्रिक्स के लिए
zip_longest(itertools) या कस्टम लॉजिक उपयोग करें। - वैज्ञानिक कंप्यूटिंग/डेटा साइंस में NumPy मानक है।