Lloji standard i listës Python mund të përfaqësojë një grup dy-dimensionale me një listë listash.
Ky seksion shpjegon se si të ndërrojmë rreshtat dhe kolonat e këtij grupi dydimensional.
- Konvertoni në grup NumPy
.T
Transpozoni me këtë.
pandas.DataFrame
Konverto në këtë.T
Transpozoni me këtë.
- Transpozimi me funksionin e integruar zip()
Është më e lehtë të përdorësh NumPy ose panda, por nëse nuk dëshiron të importosh NumPy ose panda vetëm për transpozim, mund të përdorësh funksionin zip() për të transpozuar.
Vargu origjinal dydimensional është përcaktuar si më poshtë
import numpy as np
import pandas as pd
l_2d = [[0, 1, 2], [3, 4, 5]]
U konvertua në ndarray të grupit NumPy dhe u transpozua me .T
Gjeneroni një varg vargu NumPy nga grupi origjinal dydimensional dhe merrni objektin e transpozuar me atributin .T.
Nëse dëshironi një objekt të llojit të listës Python në fund, konvertoni më tej atë në një listë me metodën 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'>
Përveç atributit .T, mund të përdoret edhe metoda ndarray transpose() dhe funksioni numpy.transpose().
Konvertuar në panda.DataFrame dhe transpozuar me .T
Gjeneroni një panda.DataFrame nga grupi origjinal dydimensional dhe merrni objektin e transpozuar me atributin .T.
Nëse dëshironi një objekt të llojit të listës Python në fund, merrni numpy.ndarray me atributin vlerat dhe më pas konvertoni atë në një listë me metodën 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'>
Transpozimi me funksionin e integruar zip()
Transpozon një grup dy-dimensionale duke përdorur funksionin e integruar zip().
zip() është një funksion që kthen një përsëritës që përmbledh elementet e përsëritësve të shumtë (lista, tuples, etj.). Përdoret kur ekzekutohen lista të shumta në një cikli for, për shembull.
Për më tepër, funksioni përdor një mekanizëm ku lista mund të zgjerohet dhe kalohet nëse argumenti i funksionit shënohet me një yll.
Transpozimet mund të bëhen si më poshtë.
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'>
Siç është, elementët brenda janë tupa. Prandaj, nëse doni ta bëni atë një listë, përdorni list(), e cila konverton një tuple në një listë në shënimin e kuptimit të listës.
- LIDHUR:Si të përdorni kuptimet e listës Python
- LIDHUR:Konvertimi i listave dhe tuples me njëri-tjetrin në Python: 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'>
Më poshtë është një përmbledhje hap pas hapi e procesit.
Elementet e listës zgjerohen me një yll, elementët e zgjeruar grupohen së bashku me funksionin zip() dhe më pas tupleja konvertohet në një listë me shënimin e kuptimit të listës.
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]]