Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

행렬이란 무엇이며 Ruby에서 어떻게 사용합니까?

행렬은 스프레드시트와 같은 데이터를 저장하고 작업하는 데 사용할 수 있는 2D(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 객체는 변경할 수 없으므로 새 행렬을 생성하지 않고는 값을 변경할 수 없습니다. 이 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

Dru와 함께 플로팅

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

이렇게 하면 다음 차트가 생성됩니다.

행렬이란 무엇이며 Ruby에서 어떻게 사용합니까?

이 차트는 코드와 동일한 폴더에서 HTML 파일로 찾을 수 있습니다.

Rails 애플리케이션에서 Daru를 사용하려면 daru-view를 추가해야 합니다. gem을 섞어서 사용하거나 chartkick과 같은 다른 gem을 사용하세요.

요약

Ruby의 행렬에 대해 배웠으므로 2차원 데이터로 작업할 수 있습니다!

더 많은 사람들이 찾을 수 있도록 이 기사를 공유하는 것을 잊지 마세요.

읽어주셔서 감사합니다.