Стандардни тип Питхон листе може представљати дводимензионални низ путем листе листа.
Овај одељак објашњава како заменити редове и колоне овог дводимензионалног низа.
- Конвертујте у НумПи низ
.T
Транспонирајте са овим.
pandas.DataFrame
Претворите у ово.T
Транспонирајте са овим.
- Транспозиција са уграђеном функцијом зип()
Лакше је користити НумПи или панде, али ако не желите да увезете НумПи или панде само за транспозицију, можете користити зип() функцију за транспоновање.
Оригинални дводимензионални низ је дефинисан на следећи начин
import numpy as np
import pandas as pd
l_2d = [[0, 1, 2], [3, 4, 5]]
Конвертовано у НумПи низ ндарраи и транспоновано са .Т
Генеришите НумПи низ ндарраи из оригиналног дводимензионалног низа и добијте транспоновани објекат са .Т атрибутом.
Ако на крају желите Питхон објекат типа листе, даље га конвертујте у листу помоћу методе толист().
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'>
Поред .Т атрибута, могу се користити и ндарраи метод транспосе() и функција нумпи.транспосе().
Претворено у пандас.ДатаФраме и транспоновано са .Т
Генеришите пандас.ДатаФраме из оригиналног дводимензионалног низа и преузмите транспоновани објекат са атрибутом .Т.
Ако на крају желите Питхон-ов објекат типа листе, узмите нумпи.ндарраи са атрибутом валуес, а затим га конвертујте у листу помоћу методе толист().
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'>
Транспозиција са уграђеном функцијом зип()
Транспонује дводимензионални низ помоћу уграђене функције зип().
зип() је функција која враћа итератор који сумира елементе вишеструких итерабле (листе, торке, итд.). Користи се када се покреће више листа у фор петљи, на пример.
Поред тога, функција користи механизам помоћу којег листа може бити проширена и прослеђена ако је аргумент функције означен звездицом.
Транспозиције се могу извршити на следећи начин.
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'>
Као што јесте, елементи унутар су тупле. Стога, ако желите да то буде листа, користите лист(), који конвертује тупле у листу у нотацији разумевања листе.
- ПОВЕЗАН:Како се користи разумевање Питхон листе
- ПОВЕЗАН:Конвертовање листа и торкова једни у друге у Питхон-у: лист(), тупле()
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'>
Следи детаљан преглед процеса.
Елементи листе се проширују звездицом, проширени елементи се групишу заједно са зип() функцијом, а затим се тупле конвертује у листу са нотацијом за разумевање листе.
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]]