Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

A Matrix คืออะไรและจะใช้อย่างไรใน Ruby?

เมทริกซ์คืออาร์เรย์ 2 มิติ (2 มิติ) ที่สามารถใช้ในการจัดเก็บและทำงานกับข้อมูลที่เหมือนสเปรดชีตได้

สามารถใช้ได้ :

  • เป็นตัวแทนของกระดานในเกมโต๊ะ (หมากรุก หมากฮอส ฯลฯ)
  • สถิติและการวิเคราะห์ข้อมูล
  • การสร้างพล็อตและกราฟ

เนื่องจากนี่เป็นโครงสร้างข้อมูลที่มีประสิทธิภาพ การเรียนรู้วิธีการใช้งานจึงเป็นประโยชน์

วิธีสร้างเมทริกซ์ใน Ruby

คุณสามารถสร้างเมทริกซ์ด้วยอาร์เรย์ได้

ถูกใจสิ่งนี้ :

matrix = [
  [1,2,3],
  [4,5,6],
  [7,8,9]
]

สิ่งนี้สร้างเมทริกซ์ 3×3 และเป็นตัวเลือกที่ดีที่สุดของคุณหากคุณต้องการจัดเก็บข้อมูล 2 มิติเป็นบอร์ดหรือชุดของตำแหน่ง

แต่ถ้าคุณต้องการรวมเมทริกซ์ผ่านการบวก การลบ และการคูณ...

จากนั้นคุณสามารถใช้ 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]]

คุณสามารถเข้าถึงแต่ละค่าได้ดังนี้:

a[0, 1]

นี่เป็นแตกต่างจากรุ่นอาร์เรย์ ซึ่งจะใช้ไวยากรณ์นี้:

matrix[0][1]

ทั้งอาร์เรย์และเมทริกซ์สามารถเปลี่ยนได้ ซึ่งหมายความว่าแถวจะกลายเป็นคอลัมน์และคอลัมน์จะกลายเป็นแถว

ตัวอย่าง :

matrix.transpose

# [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

จำไว้ด้วย :

ออบเจ็กต์เมทริกซ์จะไม่เปลี่ยนรูป ดังนั้นคุณจึงไม่สามารถเปลี่ยนค่าโดยไม่สร้างเมทริกซ์ใหม่ได้ Matrixนี้ เป็นส่วนใหญ่สำหรับการดำเนินการทางคณิตศาสตร์ หากคุณต้องการการวิเคราะห์ข้อมูลและสถิติ คุณจะต้องการสิ่งที่มีประสิทธิภาพมากขึ้น

บางอย่างเช่น…

อัญมณีดารุ

Daru เป็นอัญมณีที่ให้คุณทำงานกับเมทริกซ์ รับสถิติจากพวกมัน และพิมพ์ออกมาเป็นตารางที่มีรูปแบบสวยงาม Daru ยังผสานรวมกับ Ruby พล็อตอัญมณี คุณจึงสร้างแผนภาพและกราฟจากข้อมูลของคุณได้

นี่คือตัวอย่าง :

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 และแม้แต่ไฟล์ Excel

ตัวอย่าง :

df = Daru::DataFrame.from_csv('healthy_food.csv')

และคุณสามารถกรองข้อมูลด้วย where การแสดงออก

ตัวอย่างเช่น…

หากเรามีคอลัมน์ "คาร์โบไฮเดรต" เราจะสามารถหาแถวทั้งหมดในเมทริกซ์ที่มีค่าน้อยกว่า 25

ถูกใจสิ่งนี้ :

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 ช่วยให้คุณสร้างการแสดงข้อมูลเป็นภาพและส่งออกเป็นไฟล์ 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

สิ่งนี้สร้างแผนภูมินี้:

A Matrix คืออะไรและจะใช้อย่างไรใน Ruby?

คุณจะพบแผนภูมินี้เป็นไฟล์ HTML ในโฟลเดอร์เดียวกับโค้ดของคุณ

หากคุณต้องการใช้ Daru ในแอปพลิเคชัน Rails คุณจะต้องเพิ่ม daru-view อัญมณีเพื่อผสมหรือใช้อัญมณีอื่นเช่น Chartkick

สรุป

คุณได้เรียนรู้เกี่ยวกับเมทริกซ์ใน Ruby แล้ว คุณจึงสามารถทำงานกับข้อมูล 2 มิติได้!

อย่าลืมแชร์บทความนี้เพื่อให้คนอื่นค้นพบมันมากขึ้น

ขอบคุณสำหรับการอ่าน