[Python] Array

Poke·2024년 4월 1일

Array는 동일한 데이터타입을 갖는 요소들의 배열을 저장하는데 사용함.
list와 유사하지만, list는 다양한 데이터타입을 요소로 가질 수 있음.
array는 동일한 타입의 데이터를 저장할때, 더 적은 메모리를 사용하고 처리속도도 더 빠르나, array는 수치데이터 타입에 한정적이며 메소드가 제한적.

Array module

Array는 파이썬에 내장되어 있지 않기 때문에 array module을 import해야한다.

# 기본구조
import array

arr = array.array(typecode, [element1, element2, ...])
  • typecode : array에 저장될 요소의 종류를 지정.
  • elements : 요소를 입력하고, 각 요소는 쉼표로 구분.

Typecode

TYPECODEPYTHON TYPESIZE (bytes)
bint1
Bint1
uUnicode character2
hint2
Hint2
iint2
Iint2
lint4
Lint4
qint8
Qint8
ffloat4
dfloat8
import array as arr 

numbers = arr.array('i',[10,20,30])
print(numbers)
print(type(numbers))
array('i', [10, 20, 30])
<class 'array.array'>

만약 다른 데이터타입을 넣는다면 에러뜸

import array as arr 

numbers = arr.array('i', [10.0, 20, 30])
print(numbers)
TypeError: 'float' object cannot be interpreted as an integer
# 빈 array 생성
arr = array.array(typecode)
print(arr)
array('i')

순서가 있어서 인덱스로 요소에 접근할 수 있다.

import array

numbers = array.array('i', [10, 20, 30])
print(numbers[0])

numbers[2] = 40 
print(numbers)
10
array('i', [10, 20, 40])

관련 메소드

append()

import array

numbers = array.array('i', [10, 20, 30])
numbers.append(40)

print(numbers)
array('i', [10, 20, 30, 40])

pop()

import array

numbers = array.array('i', [10, 20, 30])
numbers.pop(2)

print(numbers)
array('i', [10, 20])

remove()

import array

numbers = array.array('i', [10, 20, 30])
numbers.remove(20)

print(numbers)
array('i', [10, 30])
MethodDescription
append()리스트의 끝에 요소를 추가함
clear()리스트의 모든 요소를 제거함.
copy()리스트의 복사본을 반환.
count()지정된 값과 일치하는 요소의 개수를 반환
extend()리스트의 끝에 다른 요소를 추가함
index()지정된 값과 첫번째로 일치하는 요소의 인덱스를 반환
insert()지정된 위치에 요소를 추가함
pop()지정된 위치의 요소를 제거함
remove()지정된 값과 일치하는 첫번째 요소를 제거함
reverse()리스트의 순서를 뒤집음
sort()리스트를 정렬함

List와 Array의 비교

공통점
요소의 변경이 가능하고 크기가 고정되어있지 않음.
차이점
리스트는 서로다른 다양한 데이터타입을 저장할 수 잇음. array는 동일한 데이터타입만 가능함.

Numpy

과학계산에 널리 사용되며 다차원배열을 지원함. 대량의 데이터 처리와 복잡한 수치계산을 위한 광범위한 함수를 제공.

# 기본구조
import numpy as np

arr = np.array([element1, element2, ...])

numpy도 array module과 동일하게 배열안의 요소는 같은 데이터타입이여야한다.

import numpy as np

arr = np.array([10, 20, 30])

print(arr)
print(type(arr))
[10 20 30]
<class 'numpy.ndarray'>

추가적으로 공부할 부분

0개의 댓글