मानक पाइथन सूची प्रकारले सूचीहरूको सूचीद्वारा दुई-आयामी एरे प्रतिनिधित्व गर्न सक्छ।
यो खण्डले यो दुई-आयामी एरेको पङ्क्ति र स्तम्भहरू कसरी स्वैप गर्ने भनेर बताउँछ।
- NumPy एरेमा रूपान्तरण गर्नुहोस्
.Tयससँग ट्रान्सपोज गर्नुहोस्।
pandas.DataFrameयसलाई रूपान्तरण गर्नुहोस्.Tयससँग ट्रान्सपोज गर्नुहोस्।
- बिल्ट-इन प्रकार्य zip() सँग ट्रान्सपोजिसन
NumPy वा पान्डाहरू प्रयोग गर्न सजिलो छ, तर यदि तपाईं स्थानान्तरणको लागि मात्र NumPy वा पान्डाहरू आयात गर्न चाहनुहुन्न भने, तपाईंले zip() प्रकार्य ट्रान्सपोज गर्न प्रयोग गर्न सक्नुहुन्छ।
मूल द्वि-आयामी सरणी निम्न रूपमा परिभाषित गरिएको छ
import numpy as np
import pandas as pd
l_2d = [[0, 1, 2], [3, 4, 5]]
NumPy array ndarray मा रूपान्तरण गरियो र .T सँग ट्रान्सपोज गरियो
मूल द्वि-आयामी एरेबाट NumPy array ndarray उत्पन्न गर्नुहोस् र .T विशेषताको साथ ट्रान्सपोज गरिएको वस्तु प्राप्त गर्नुहोस्।
यदि तपाइँ अन्त्यमा पाइथन सूची-प्रकारको वस्तु चाहनुहुन्छ भने, यसलाई tolist() विधिको साथ सूचीमा रूपान्तरण गर्नुहोस्।
arr_t = np.array(l_2d).T
print(arr_t)
print(type(arr_t))
# [[0 3]
# [1 4]
# [2 5]]
# <class 'numpy.ndarray'>
l_2d_t = np.array(l_2d).T.tolist()
print(l_2d_t)
print(type(l_2d_t))
# [[0, 3], [1, 4], [2, 5]]
# <class 'list'>
.T विशेषता को अतिरिक्त, ndarray विधि transpose() र प्रकार्य numpy.transpose() पनि प्रयोग गर्न सकिन्छ।
pandas.DataFrame मा रूपान्तरित र .T सँग ट्रान्सपोज गरियो
मूल द्वि-आयामी एरेबाट pandas.DataFrame उत्पन्न गर्नुहोस् र .T विशेषताको साथ ट्रान्सपोज गरिएको वस्तु प्राप्त गर्नुहोस्।
यदि तपाइँ अन्तमा पाइथन सूची-प्रकारको वस्तु चाहनुहुन्छ भने, मान विशेषताको साथ numpy.ndarray प्राप्त गर्नुहोस्, र त्यसपछि यसलाई tolist() विधिको साथ सूचीमा रूपान्तरण गर्नुहोस्।
df_t = pd.DataFrame(l_2d).T
print(df_t)
print(type(df_t))
# 0 1
# 0 0 3
# 1 1 4
# 2 2 5
# <class 'pandas.core.frame.DataFrame'>
l_2d_t = pd.DataFrame(l_2d).T.values.tolist()
print(l_2d_t)
print(type(l_2d_t))
# [[0, 3], [1, 4], [2, 5]]
# <class 'list'>
बिल्ट-इन प्रकार्य zip() सँग ट्रान्सपोजिसन
बिल्ट-इन प्रकार्य zip() प्रयोग गरेर दुई-आयामी एरे ट्रान्सपोज गर्छ।
zip() एक प्रकार्य हो जसले पुनरावृत्ति फर्काउँछ जसले बहु पुनरावृत्तिहरू (सूचीहरू, टपल्स, आदि) को तत्वहरूलाई संक्षेप गर्दछ। उदाहरणका लागि, लूपमा धेरै सूचीहरू चलाउँदा यो प्रयोग गरिन्छ।
थप रूपमा, प्रकार्यले एउटा मेकानिजम प्रयोग गर्दछ जहाँ सूची विस्तार गर्न सकिन्छ र यदि प्रकार्य तर्क तारा चिन्हसँग चिन्ह लगाइएको छ भने पास गर्न सकिन्छ।
निम्नानुसार स्थानान्तरण गर्न सकिन्छ।
l_2d_t_tuple = list(zip(*l_2d))
print(l_2d_t_tuple)
print(type(l_2d_t_tuple))
# [(0, 3), (1, 4), (2, 5)]
# <class 'list'>
print(l_2d_t_tuple[0])
print(type(l_2d_t_tuple[0]))
# (0, 3)
# <class 'tuple'>
यो जस्तै, भित्र तत्वहरू tuples छन्। तसर्थ, यदि तपाइँ यसलाई सूची बनाउन चाहनुहुन्छ भने, सूची () प्रयोग गर्नुहोस्, जसले ट्यूपललाई सूची बुझाइ सङ्केतमा सूचीमा रूपान्तरण गर्दछ।
- सम्बन्धित:पाइथन सूची समझ कसरी प्रयोग गर्ने
- सम्बन्धित:पाइथनमा सूची र ट्युपलहरूलाई एकअर्कामा रूपान्तरण गर्दै: list(), tuple()
l_2d_t = [list(x) for x in zip(*l_2d)]
print(l_2d_t)
print(type(l_2d_t))
# [[0, 3], [1, 4], [2, 5]]
# <class 'list'>
print(l_2d_t[0])
print(type(l_2d_t[0]))
# [0, 3]
# <class 'list'>
निम्न प्रक्रियाको चरण-दर-चरण ब्रेकडाउन हो।
सूचीका तत्वहरूलाई एस्टेरिस्कको साथ विस्तार गरिएको छ, विस्तारित तत्वहरूलाई zip() प्रकार्यसँग समूहबद्ध गरिएको छ, र त्यसपछि tuple लाई सूची बुझ्ने सङ्केतको साथ सूचीमा रूपान्तरण गरिन्छ।
print(*l_2d)
# [0, 1, 2] [3, 4, 5]
print(list(zip([0, 1, 2], [3, 4, 5])))
# [(0, 3), (1, 4), (2, 5)]
print([list(x) for x in [(0, 3), (1, 4), (2, 5)]])
# [[0, 3], [1, 4], [2, 5]]


