ប្រភេទបញ្ជី Python ស្តង់ដារអាចតំណាងឱ្យអារេពីរវិមាត្រដោយបញ្ជីបញ្ជី។
ផ្នែកនេះពន្យល់ពីរបៀបប្តូរជួរដេក និងជួរឈរនៃអារេពីរវិមាត្រនេះ។
- បំប្លែងទៅជាអារេ NumPy
.T
ផ្ទេរជាមួយនេះ។
pandas.DataFrame
បម្លែងទៅជានេះ។.T
ផ្ទេរជាមួយនេះ។
- ការផ្លាស់ប្តូរជាមួយមុខងារ zip() ដែលភ្ជាប់មកជាមួយ
វាកាន់តែងាយស្រួលប្រើ NumPy ឬ pandas ប៉ុន្តែប្រសិនបើអ្នកមិនចង់នាំចូល NumPy ឬ pandas សម្រាប់ transposition អ្នកអាចប្រើមុខងារ zip() ដើម្បីបញ្ជូន។
អារេពីរវិមាត្រដើមត្រូវបានកំណត់ដូចខាងក្រោម
import numpy as np
import pandas as pd
l_2d = [[0, 1, 2], [3, 4, 5]]
បំប្លែងទៅជា NumPy អារេ ndarray ហើយប្តូរជាមួយ .T
បង្កើត ndarray អារេ NumPy ពីអារេពីរវិមាត្រដើម ហើយទទួលបានវត្ថុដែលបានចម្លងដោយគុណលក្ខណៈ .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() គឺជាអនុគមន៍ដែលត្រឡប់ ផ្ដល់មកវិញ ,,,,,,, ពុយលី ។ល។ វាត្រូវបានប្រើនៅពេលដំណើរការបញ្ជីច្រើនក្នុងសម្រាប់រង្វិលជុំ។
លើសពីនេះ មុខងារប្រើយន្តការដែលបញ្ជីអាចត្រូវបានពង្រីក និងឆ្លងកាត់ ប្រសិនបើអាគុយម៉ង់មុខងារត្រូវបានសម្គាល់ដោយសញ្ញាផ្កាយ។
ការផ្លាស់ប្តូរអាចត្រូវបានធ្វើឡើងដូចខាងក្រោម។
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 ទៅជាបញ្ជីមួយក្នុង list comprehension notation ។
- ពាក់ព័ន្ធ៖របៀបប្រើការយល់បញ្ជី Python
- ពាក់ព័ន្ធ៖ការបំប្លែងបញ្ជី និង tuples ទៅគ្នាទៅវិញទៅមកនៅក្នុង 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() ហើយបន្ទាប់មក 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]]