পাইথন তালিকা প্রকারের দ্বি-মাত্রিক অ্যারের সারি এবং কলাম অদলবদল করুন

ব্যবসায়

স্ট্যান্ডার্ড পাইথন তালিকার ধরন তালিকার একটি তালিকা দ্বারা একটি দ্বি-মাত্রিক অ্যারে উপস্থাপন করতে পারে।

এই বিভাগটি ব্যাখ্যা করে কিভাবে এই দ্বি-মাত্রিক অ্যারের সারি এবং কলামগুলি অদলবদল করতে হয়।

    1. NumPy অ্যারেতে রূপান্তর করুন
    2. .Tএটি দিয়ে স্থানান্তর করুন।
    1. pandas.DataFrameএতে কনভার্ট করুন
    2. .Tএটি দিয়ে স্থানান্তর করুন।
  • অন্তর্নির্মিত ফাংশন জিপ() সহ স্থানান্তর

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 বৈশিষ্ট্য সহ ট্রান্সপোজড অবজেক্ট পান।

আপনি যদি শেষ পর্যন্ত একটি পাইথন তালিকা-টাইপ অবজেক্ট চান তবে এটিকে 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 বৈশিষ্ট্য সহ ট্রান্সপোজড অবজেক্ট পান।

আপনি যদি শেষ পর্যন্ত একটি পাইথন তালিকা-টাইপ অবজেক্ট চান, তাহলে মান বৈশিষ্ট্য সহ 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() হল একটি ফাংশন যা একটি পুনরাবৃত্তিকারী প্রদান করে যা একাধিক পুনরাবৃত্তিযোগ্য (তালিকা, টিপল, ইত্যাদি) উপাদানগুলির সংক্ষিপ্ত বিবরণ দেয়। উদাহরণস্বরূপ, লুপে একাধিক তালিকা চালানোর সময় এটি ব্যবহার করা হয়।

উপরন্তু, ফাংশনটি এমন একটি প্রক্রিয়া ব্যবহার করে যেখানে তালিকাটি প্রসারিত করা যেতে পারে এবং যদি ফাংশন আর্গুমেন্টটি তারকাচিহ্ন দিয়ে চিহ্নিত করা হয়।

নিম্নরূপ স্থানান্তর করা যেতে পারে।

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 হয়. অতএব, আপনি যদি এটিকে একটি তালিকা করতে চান তবে তালিকা() ব্যবহার করুন, যা একটি টিপলকে তালিকা বোঝার স্বরলিপিতে একটি তালিকায় রূপান্তরিত করে।

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