카테고리 없음

[DataScience Computing] Linear Data Structure 2 - Array

터틀넥 2024. 4. 20. 00:31

1️⃣ 배열(Array)

 
배열(Array)은 선형 데이터 구조 중 하나로, 동일한 데이터 타입의 요소들을 연속적인 메모리 위치에 저장한다.
 
배열의 각 요소는 인덱스를 통해 접근할 수 있으며, 이 인덱스를 사용하여 배열 내의 특정 위치에 빠르게 접근할 수 있다.
 
 
 

2️⃣ 주요 특징

 
1. 고정 크기
 
대부분의 프로그래밍 언어에서 배열은 선언 시 지정된 크기를 가지며, 이 크기는 실행 중에 변경할 수 없다, 이는 배열의 메모리 관리를 단순하게 하지만, 동적 크기 조정이 필요할 때는 제약이 될 수 있다.

 
 

2. 동일한 데이터 타입
 
배열의 모든 요소는 같은 데이터 타입을 가져야 한다. 이는 각 요소의 메모리 크기가 동일하므로, 인덱스를 사용한 계산이 가능하게 하고, 이를 통해 특정 요소에 매우 빠르게 접근할 수 있다.
 
 
3. 인덱스 접근
 
배열 요소는 인덱스를 사용하여 직접 접근할 수 있다. 이 인덱스는 0부터 시작하여 배열의 크기 -1까지 번호가 매겨진다.
예를 들어 배열의 첫 번째, 요소는 인덱스 0으로 접근할 수 있다.
 
 
 

3️⃣ 배열의 사용 예

배열은 다양한 프로그래밍 상황에서 사용된다. 예를 들어, 데이터를 정렬하거나 검색할 때, 여러 요소의 집합을 저장할 필요가 있을 때 배열이 유용하다.
 
또한 컴퓨터 과학에서는 알고리즘 구현에 자주 사용되며 수학에서는 벡터나 행렬 연산에 사용된다.
 
 
 
 

4️⃣ 배열과 Python

Python에서는 기본적으로 배열 구조를 제공하지 않으며, 대신 리스트(list)라는 동적 배열을 사용한다. 리스트는 배열과 유사하지만 크기가 동적으로 변할 수 있으며, 서로 다른 데이터 타입의 요소를 저장할 수 있다.
 
하지만 Python에서 타입이 고정된 배열이 핑요한 경우, 'array' 모듈을 사용할 수 있으며, numpy와 같은 라이브러리에서 더 고성능의 배열을 제공한다.
 
 
 

5️⃣ Python 코드를 통한 Array 예시

앞서 말했듯이 Python에서는 기본적으로 배열 대신 리스트를 사용하지만, 고정 타입의 배열을 사용하려면 내장 모듈인 'array'를 사용할 수 있다. 이 모듈은 기본적인 배열 기능을 제공하며, 모든 요소가 데이터 타입을 갖도록 한다.
 
아래에서는 'array' 모듈을 사용하여 배열을 생성하고 기본적인 연산을 수행하는 예제 코드를 통해 알아보자.
 
 

import array

# 'i' 타입 코드는 정수(integer)를 나타냅니다.
arr = array.array('i', [1, 2, 3, 4, 5])

print("Original array:")
for element in arr:
    print(element)

# 배열에 요소 추가
arr.append(6)
print("Array after appending 6:")
print(arr)

# 배열에서 요소 제거
arr.remove(3)
print("Array after removing 3:")
print(arr)

# 배열의 특정 요소 접근
print("Element at index 2:")
print(arr[2])

# 배열의 크기 출력
print("Array size:")
print(len(arr))

 
 

😎 코드 설명

1. 배열 생성

  • 'array.array(typecode, [initializers])' 함수를 사용하여 배열을 생성한다. 'typecode'는 배열에 저장될 데이터 타입을 정의한다. 예를 들어 'i'는 정수 타입을 나타낸다.

 
2. 배열 요소 출력

  • 배열의 요소를 반복문을 통해 출력한다. Python 배열은 리스트와 유사하게 반복 가능하다.

 
3. 요소 추가('append'):

  • 'append()' 메서드를 사용하여 배열의 끝에 새 요소를 추가한다.

 
4. 요소 제거('remove'):

  • 'remove()' 메서드를 사용하여 배열에서 첫 번째로 발견된 특정 값을 제거한다.

 
5. 특정 요소 접근

  • 배열의 인덱스를 사용하여 특정 위치의 요소에 접근할 수 있다. 인덱스는 0부터 시작한다.

 
6. 배열크기

  • 'len()' 함수를 사용하여 배열의 크기(요소의 수)를 확인할 수 있다.

 
이 예제를 통해 Python의 'array' 모듈을 사용하여 효율적인 배열을 생성하고 관리하는 방법을 확인할 수 있다.
 
'array' 모듈의 메모리 사용을 최적화하고 특정 데이터 타입에 맞춰 배열을 관리할 때 유용하다.