Стандартты Python тізім түрі тізімдер тізімі арқылы екі өлшемді массивті көрсете алады.
Бұл бөлім осы екі өлшемді массивтің жолдары мен бағандарын ауыстыру жолын түсіндіреді.
- 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 массивіне түрлендірілді және .T арқылы ауыстырылды
Бастапқы екі өлшемді массивтен NumPy массивінің ndar массивін жасаңыз және .T атрибуты бар ауыстырылған нысанды алыңыз.
Егер сіз соңында Python тізім түріндегі нысанды алғыңыз келсе, оны одан әрі 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 атрибутымен ауыстырылған нысанды алыңыз.
Егер сіз соңында Python тізім түріндегі нысанды алғыңыз келсе, мәндер төлсипаты бар 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() – бірнеше қайталанатын элементтердің (тізімдер, кортеждер, т.б.) жиынтықталатын итераторды қайтаратын функция. Ол, мысалы, for циклінде бірнеше тізімдерді іске қосу кезінде пайдаланылады.
Бұған қоса, функция функция аргументі жұлдызшамен белгіленген болса, тізімді кеңейтуге және жіберуге болатын механизмді пайдаланады.
Транспозицияларды келесідей жасауға болады.
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'>
Қалай болғанда да, ішіндегі элементтер кортеждер. Сондықтан, оны тізімге айналдырғыңыз келсе, тізімді түсіну белгісіндегі кортежді тізімге түрлендіретін list() пайдаланыңыз.
- БАЙЛАНЫСТЫ:Python тізімінің түсінігін қалай пайдалануға болады
- БАЙЛАНЫСТЫ: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'>
Төменде процестің кезең-кезеңімен берілген.
Тізім элементтері жұлдызшамен кеңейтіледі, кеңейтілген элементтер zip() функциясымен бірге топтастырылады, содан кейін кортеж тізімді түсіну белгісі бар тізімге түрлендіріледі.
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]]