데이터 구조: 배열, 목록 및


데이터 구조: 배열, 목록 및 1
출처: 언스플래쉬

데이터 구조는 컴퓨터 프로그램에 의해 저장, 구성 및 액세스될 때 데이터가 구성되는 방식을 나타냅니다.

데이터 분석 업무를 하다 보면 대용량 데이터 세트를 저장, 처리, 분석하기 위해 다양한 데이터 구조를 사용하게 되는데 상황에 맞는 데이터 구조를 선택해야 합니다.

이것은 최적의 속도와 결과를 보장합니다.

이 기사에서는 일반적으로 사용되는 세 가지 데이터 구조(배열, 목록 및 테이블)를 살펴보고 데이터 분석의 맥락에서 각각의 차이점과 예에 대해 논의합니다.

또한 다른 글에서 다루지 않은 R과 Python으로 코딩하는 예제를 보여드리고자 하니 대략적인 이해를 위한 참고용으로만 봐주세요. 각 언어는 데이터 구조의 개념이 약간 다를 수 있으며 인코딩 방법도 다를 수 있으며 구체적인 내용은 각 언어 범주에서 다시 설명합니다.

정렬

배열은 동일한 데이터 유형의 값은 인접한 메모리 위치에 저장됩니다.

배열의 각 요소는 0부터 시작하는 인덱스를 사용하여 액세스하거나 저장할 수 있습니다.

데이터 분석에서 배열을 사용하면 각 요소에 빠르게 액세스할 수 있으므로 대용량 데이터 세트를 효율적으로 저장하고 처리할 수 있습니다.

  • 시간 경과에 따른 회사 주가를 배열에 저장하고 시계열 분석을 수행합니다.

  • 설문조사에 응한 사람들의 직업, 범주별 데이터를 배열로 저장하고 통계 분석을 수행합니다.

R 샘플 코드

#Creating an array in R
array1 <- c(1, 2, 3, 4, 5)
array2 <- c("a", "b", "c", "d")

# Accessing elements of an array
array1(3) # returns 3
array2(2) # returns "b"

파이썬 샘플 코드

#Creating an array in Python
import numpy as np
array1 = np.array((1, 2, 3, 4, 5))
array2 = np.array(("a", "b", "c", "d"))

# Accessing elements of an array
array1(2) # returns 3
array2(1) # returns "b"

목록

목록은 동일하거나 다른 데이터 유형의 데이터가 함께 저장되는 데이터 집합입니다.

배열과 반대로 다른 유형의 데이터저장할 수도 있습니다.

또 다른 차이점은 목록이 동적으로 확장되거나 축소될 수 있다는 것입니다.

데이터 분석에서 목록을 사용하면 각 요소에 빠르게 액세스할 수 있으므로 큰 데이터 세트를 저장 및 처리하고 중첩 목록과 같은 복잡한 데이터 구조를 저장하는 데 사용할 수도 있습니다.

  • 시간 경과에 따른 여러 도시의 온도를 목록에 저장하고 시계열 분석을 수행합니다.

  • 각 지원의 정보를 별도의 목록으로 저장하고 모든 직원의 마스터 목록을 생성하는 중첩 목록을 생성하여 직원 정보를 효율적으로 관리합니다.

R 샘플 코드

#Creating a list in R
list1 <- list(1, "a", 2, "b")
list2 <- list(c(1, 2, 3), c("a", "b", "c"))

# Accessing elements of a list
list1((1)) # returns 1
list2((2)) # returns c("a", "b", "c")

파이썬 샘플 코드

#Creating a list in Python
list1 = (1, "a", 2, "b")
list2 = ((1, 2, 3), ("a", "b", "c"))

# Accessing elements of a list
list1(0) # returns 1
list2(1) # returns ("a", "b", "c")

R 샘플 코드 – 중첩 목록

# Define a nested list
nested_list <- list(c(1, 2, 3), c("A", "B", "C"), c(TRUE, FALSE, TRUE))

# Access elements in nested list
nested_list((1))(2) # Output: 2
nested_list((2))(3) # Output: "C"
nested_list((3))(2) # Output: FALSE

Python 샘플 코드 – 중첩 목록

# Nested List Example
matrix = ((1, 2, 3), (4, 5, 6), (7, 8, 9))
print(matrix)

# Accessing a specific element
print("Element at (0, 2):", matrix(0)(2))

# Modifying an element in the matrix
matrix(1)(1) = 100
print("Modified matrix:", matrix)

# Nested List Comprehension
squared_matrix = ((element**2 for element in row) for row in matrix)
print("Squared matrix:", squared_matrix)

테이블

테이블은 행과 열로 구성된 2차원 데이터 구조입니다.

각 열은 데이터의 다른 속성 또는 특성을 나타내고 각 행은 다른 인스턴스 또는 Observable을 나타냅니다.

목록과 마찬가지로 각 요소에 빠르게 액세스할 수 있고 열 및 행 작업을 수행할 수 있으므로 큰 데이터 집합을 보다 쉽게 ​​처리할 수 있습니다.

데이터 프레임이라고도 합니다.

  • 다양한 제품 범주에 대한 판매 데이터를 스프레드시트에 저장하여 분석을 수행합니다.

R 샘플 코드

#Creating a table in R
table1 <- data.frame(
  Name = c("John", "Jane", "Jim"),
  Age = c(30, 29, 32),
  Occupation = c("Teacher", "Doctor", "Engineer")
)

# Accessing elements of a table
table1(2,) # returns the second row of the table
table1(,1) # returns the first

파이썬 샘플 코드

import pandas as pd

# Creating a table with three columns: 'Name', 'Age', 'City'
table = pd.DataFrame({'Name': ('John', 'Jane', 'Jim', 'Joan'),
                      'Age': (32, 45, 28, 51),
                      'City': ('New York', 'London', 'Paris', 'Berlin')})

# Showing the table
print(table)

# Output:
#    Name  Age     City
# 0  John   32  New York
# 1  Jane   45    London
# 2   Jim   28     Paris
# 3  Joan   51    Berlin

# Adding a new column 'Occupation' to the table
table('Occupation') = ('Data Analyst', 'Doctor', 'Teacher', 'Engineer')

# Showing the updated table
print(table)

# Output:
#    Name  Age     City    Occupation
# 0  John   32  New York  Data Analyst
# 1  Jane   45    London       Doctor
# 2   Jim   28     Paris     Teacher
# 3  Joan   51    Berlin    Engineer

# Selecting a specific row from the table
row_2 = table.loc(2)
print(row_2)

# Output:
# Name            Jim
# Age              28
# City          Paris
# Occupation    Teacher
# Name: 2, dtype: object

# Selecting a specific column from the table
age_column = table('Age')
print(age_column)

# Output:
# 0    32
# 1    45
# 2    28
# 3    51
# Name: Age, dtype: int64