Python жагсаалтын төрлийн хоёр хэмжээст массивын мөр, баганыг солих

Бизнес эрхэлдэг

Стандарт Python жагсаалтын төрөл нь хоёр хэмжээст массивыг жагсаалтын жагсаалтаар илэрхийлж болно.

Энэ хэсэгт энэ хоёр хэмжээст массивын мөр, баганыг хэрхэн солих талаар тайлбарласан болно.

    1. NumPy массив руу хөрвүүлэх
    2. .TҮүнтэй хамт шилжүүлээрэй.
    1. pandas.DataFrameҮүнийг хөрвүүл
    2. .TҮүнтэй хамт шилжүүлээрэй.
  • zip() суурилагдсан функцтэй шилжүүлэг

NumPy эсвэл панда ашиглах нь илүү хялбар боловч хэрэв та зөвхөн шилжүүлэн суулгах зорилгоор NumPy эсвэл пандаг импортлохыг хүсэхгүй байгаа бол шилжүүлэн суулгахдаа zip() функцийг ашиглаж болно.

Анхны хоёр хэмжээст массивыг дараах байдлаар тодорхойлно

import numpy as np
import pandas as pd

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

NumPy массив ndarray руу хөрвүүлж, .T-ээр шилжүүлэв

Анхны хоёр хэмжээст массиваас NumPy массив ndarray үүсгэж, шилжүүлсэн объектыг .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 жагсаалт төрлийн объект авахыг хүсвэл values-ийн шинж чанар бүхий 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()-г ашиглана уу.

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]]
Copied title and URL