Rêz û stûnên rêzek du-alî ya celebê navnîşa Python biguhezînin

Dikan

Tîpa lîsteya standard ya Python dikare bi navnîşek navnîşan rêzek du-alî nîşan bide.

Ev beş rave dike ka meriv çawa rêz û stûnên vê rêzika du-alî biguhezîne.

    1. Veguhezînin array NumPy
    2. .TBi vê yekê veguherînin.
    1. pandas.DataFrameVê veguherînin
    2. .TBi vê yekê veguherînin.
  • Veguhastina bi fonksiyona navkirî zip()

Bikaranîna NumPy an pandayan hêsantir e, lê heke hûn nexwazin NumPy an pandayan tenê ji bo veguheztinê derxînin, hûn dikarin fonksiyona zip() bikar bînin da ku veguhezînin.

Rêzeya du-alî ya orîjînal bi vî rengî tê pênase kirin

import numpy as np
import pandas as pd

l_2d = [[0, 1, 2], [3, 4, 5]]

Veguherandin ndarray array NumPy û bi .T veguherandin

Ji rêzika du-alî ya orîjînal ndarray array NumPy biafirînin û tiştê veguhezbar bi taybetmendiya .T bistînin.

Heke hûn di dawiyê de tiştek ji tîpa navnîşa Python dixwazin, wê bêtir bi rêbaza tolist() veguherînin navnîşek.

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'>

Ji bilî taybetmendiya .T, rêbaza ndarray transpose() û fonksiyona numpy.transpose() jî dikare were bikar anîn.

Veguherî pandayan.DataFrame û bi .T

Pandayan biafirînin.DataFrame ji rêzika du-alî ya orîjînal û bi taybetmendiya .T-yê veguheztinek bistînin.

Heke hûn di dawiyê de tiştek ji tîpa navnîşa Python dixwazin, numpy.ndarray bi taybetmendiya nirxan bistînin, û dûv re wê bi rêbaza tolist() veguherînin navnîşek.

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'>

Veguhastina bi fonksiyona navkirî zip()

Bi karanîna fonksiyona zip(-ê) ya çêkirî, rêzek du-alî vediguhezîne.

zip() fonksiyonek e ku îteratorek vedigerîne ku hêmanên pirhejmaran (lîste, tîp, hwd.) bi kurtî vedigerîne. Mînakî, dema ku gelek navnîşan di çerxa for de dimeşîne, tê bikar anîn.

Wekî din, fonksiyon mekanîzmayek bikar tîne ku heke argumana fonksiyonê bi stêrkek were nîşankirin navnîş dikare were berfireh kirin û derbas kirin.

Veguheztin dikare wekî jêrîn were kirin.

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'>

Weke ku ew e, hêmanên di hundurê de tûp in. Ji ber vê yekê, heke hûn dixwazin wê navnîşek çêbikin, navnîşa () bikar bînin, ku di navnîşa têgihîştina navnîşê de pirjimarek veguherîne navnîşek.

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'>

Li jêr gav bi gav veqetandina pêvajoyê ye.

Hêmanên lîsteyê bi stêrkekê têne berfireh kirin, hêmanên berfirehkirî bi fonksiyona zip() re têne kom kirin, û dûv re jimare vediguherînin navnîşek bi nîşana têgihîştina navnîşê.

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]]