একটি ম্যাট্রিক্স হলো একটি ২D (২-ডাইমেনশনাল) অ্যারে যা স্প্রেডশিট-লাইক ডেটা স্টোর ও কাজ করার জন্য ব্যবহার করা যায়।
এগুলো ব্যবহার করা যায়:
- একটি টেবিল গেমের বোর্ড রিপ্রেজেন্ট করা (চেস, চেকার্স, ইত্যাদি)
- স্ট্যাটিস্টিক্স এবং ডেটা অ্যানালাইসিস
- প্লট এবং গ্রাফ জেনারেট করা
কারণ এটি একটি পাওয়ারফুল ডেটা স্ট্রাকচার, এর ব্যবহার শিখা হেল্পফুল।
রুবিতে ম্যাট্রিক্স কীভাবে তৈরি করবেন
আপনি অ্যারে দিয়ে একটি ম্যাট্রিক্স তৈরি করতে পারেন।
এভাবে:
matrix = [ [1,2,3], [4,5,6], [7,8,9] ]
এটি একটি ৩×৩ ম্যাট্রিক্স তৈরি করে এবং এটি আপনার সেরা পছন্দ যদি আপনি ২-ডাইমেনশনাল ডেটা একটি বোর্ড বা পজিশন সেট হিসেবে স্টোর করতে চান।
কিন্তু আপনি যদি ম্যাট্রিক্সগুলো যোগ, বিয়োগ এবং গুণ করlarak কম্বাইন করতে চান...
তখন আপনি Matrix ক্লাস ব্যবহার করতে পারেন।
এখানে কীভাবে ব্যবহার করবেন:
require 'matrix' a = Matrix[[1,2,3], [4,5,6], [7,8,9]] b = Matrix[[1,2,3], [4,5,6], [7,8,9]]
এখন আপনি সেগুলো যোগ করতে পারেন:
a + b # Matrix[[2, 4, 6], [8, 10, 12], [14, 16, 18]]
আপনি indywidual ভ্যালু এভাবে অ্যাক্সেস করতে পারেন:
a[0, 1]
এটি অ্যারে ভার্সন থেকে আলাদা, যেটি এই সিনট্যাক্স ব্যবহার করত:
matrix[0][1]
অ্যারে এবং ম্যাট্রিক্স দুটোই ট্রান্সপোজ করা যায়, অর্থাৎ রোগুলো কলাম হয়ে যায় এবং কলামগুলো রো হয়ে যায়।
উদাহরণ:
matrix.transpose # [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
এছাড়া মনে রাখবেন:
Matrix অবজেক্ট ইমিউটেবল, তাই আপনি নতুন ম্যাট্রিক্স তৈরি না করলে ভ্যালুগুলো পরিবর্তন করতে পারবেন না। এই Matrix অধিকাংশত ম্যাথমেটিক্যাল অপারেশনের জন্য, আপনি যদি ডেটা অ্যানালাইসিস এবং স্ট্যাটিস্টিক্স চান তবে আপনাকে কিছু আরও পাওয়ারফুল দরকার।
যেমন...
The Daru Gem
Daru হলো একটি জেম যা আপনাকে ম্যাট্রিক্সের সাথে কাজ করতে দেয়, সেগুলো থেকে স্ট্যাটিস্টিক্স বের করতে দেয় এবং সেগুলোকে সুন্দর ফরম্যাট করা টেবিল হিসেবে প্রিন্ট করতে দেয়। Daru রুবি প্লটিং জেমের সাথে ইন্টিগ্রেটও করে যাতে আপনি আপনার ডেটা থেকে প্লট এবং গ্রাফ জেনারেট করতে পারেন।
এখানে একটি উদাহরণ:
require 'daru' df = Daru::DataFrame.new( { "A" => [1,2,3], "B" => [4,5,6], "C" => [7,8,9] }, index: ["A", "B", "C"] )
এটি নিচের টেবিল প্রিন্ট করে:
A B C A 1 4 7 B 2 5 8 C 3 6 9
আপনি একটি নির্দিষ্ট কলাম এভাবে অ্যাক্সেস করতে পারেন:
df['A']
বা নিউমেরিক্যাল ইনডেক্স দিয়ে:
df[0]
এবং আপনি এভাবে স্ট্যাটিস্টিক্স পেতে পারেন:
df['B'].describe # statistics # count 3 # mean 5.0 # std 1.0 # min 4 # max 6
সেরা অংশ?
আপনি সরাসরি CSV ফাইল, ActiveRecord এবং এমনকি এক্সেল ফাইল থেকে ডেটা লোড করতে পারেন।
উদাহরণ:
df = Daru::DataFrame.from_csv('healthy_food.csv')
এবং আপনি where এক্সপ্রেশন দিয়ে ডেটা ফিল্টার করতে পারেন।
উদাহরণস্বরূপ...
আমাদের যদি একটি "carbs" কলাম থাকে, আমরা আমাদের ম্যাট্রিক্সের সকল রো খুঁজে বের করতে পারি যেগুলোর মান ২৫ থেকে কম।
এভাবে:
df.where(df['carbs'].lt(25))
আপনি আপনার ডেটা ফ্রেমকে sort, group_by এবং aggregate করেও পারেন।
উদাহরণ:
df = Daru::DataFrame.new( { str: %w(a b c d a), num: [52,12,7,17,1] } ) df.group_by(:str).aggregate(num: :sum) # num # a 53 # b 12 # c 7 # d 17
Daru দিয়ে প্লটিং
Daru আপনাকে আপনার ডেটার ভিজ্যুয়াল রিপ্রেজেন্টেশন তৈরি করতে দেয় এবং HTML ফাইল হিসেবে এক্সপোর্ট করতে দেয়।
এখানে একটি উদাহরণ:
df = Daru::DataFrame.new( {'Cat Names' => %w(Kitty Leo Felix), 'Weight' => [2,3,5]} ) df.plot(type: :bar, x: 'Cat Names', y: 'Weight') do |plot, _| plot.x_label 'Cat Name' plot.y_label 'Weight' plot.yrange [0, 5] end .export_html
এটি এই চার্ট তৈরি করে:

আপনি এই চার্টটি আপনার কোডের সেম ফোল্ডারে HTML ফাইল হিসেবে পাবেন।
আপনি যদি Daru আপনার রেইলস অ্যাপ্লিকেশনে ব্যবহার করতে চান তবে আপনাকে daru-view জেম যোগ করতে হবে মিক্সে অথবা অন্য জেম যেন chartkick ব্যবহার করতে হবে।
সারসংক্ষেপ
আপনি রুবিতে ম্যাট্রিক্স সম্পর্কে শিখেছেন যাতে আপনি ২-ডাইমেনশনাল ডেটার সাথে কাজ করতে পারেন!
এই আর্টিকেলটি শেয়ার করতে ভুলবেন না যাতে আরও মানুষ এটিকে পেতে পারে।
পড়ার জন্য ধন্যবাদ।