- list와 Numpy array의 차이점
- list와 Numpy array의 메서드 비교
- Numpy 고유 메서드 및 기능
1. list와 Numpy array의 차이점
1. Python list와 Numpy array 선언 차이
- list: list는 다양한 데이터 타입의 원소를 동시에 포함할 수 있다.
즉 숫자형이나 문자형 여러 가지 자료형을 한 번에 다룰 수 있다. - np array: 하나의 Numpy 배열은 동일한 데이터 타입만을 포함할 수 있다.
숫자형 + 문자형 = 모두 문자형으로 변환
2. 연산
- list: 기본적인 연산은 리스트의 확장이나 반복에 관련된 것 이다. 원소별 연산은 지원되지 않는다.
덧셈의 경우, 두 리스트의 값이 꼬리를 물어 연결된다.
곱셈일 경우, 하나의 리스트에 숫자를 곱해 원소의 값을 변경할 수 있다. - np.array: 배열 간의 연산은 원소별로 수행된다.
예를 들어 두 array를 덧셈할 경우, array의 원소끼리의 합이 출력 된다.(두 array의 원소 개수가 동일해야함)
3. 크기
- list: list.append(), list.pop() 을 통해서 동적으로 크기를 확장하거나 축소할 수 있다.
- np.array: 생성 후 메서드를 통해 원소의 update는 가능하지만, array의 크기를 변경할 수 없다.
(array의 크기란? array.shape()를 했을때 출력되는 (a,b)와 같은 array의 크기, a행 b열)
4. 기능과 메서드
- list: 기본적인 추가, 삭제, 슬라이싱 등의 연산만 지원한다.
- np.array: 선형 대수, 통계, 수학 함수 등 다양한 고급 연산과 메서드를 지원한다.
5. 효율성
- list: list는 다양한 타입의 객체를 저장할 수 있지만, 이로 인해 메모리 사용이 np.array에 비해 덜 효율적이며 일반적인 연산에서 Numpy 배열보다 느릴 수 있다.
- np.array: Numpy 배열은 고정된 타입의 데이터를 저장할 수 있어 메모리 사용이 효율적이며, 내부적으로 c로 구현된 연산들로 인해 계산이 빠르다.
6. 장단점 정리
- list
장점: 자유롭게 원소 변경 및 크기 변경이 가능한 동적인 타입
단점: 메모리 사용이 Numpy배열에 비해 비효율적이며 연산 속도가 비교적 느림 - np.array
장점: 메모리 사용에 효율적이며 연산 속도가 빠름
단점: numpy 배열 생성 후 크기를 변경할 수 없는 정적인 타입
2. list와 Numpy array의 메서드 비교
메서드 | list | numpy array |
요소 추가 및 삽입 | lst.append(): 리스트의 끝에 요소 삽입 | np.append(array명, 값): numpy 배열은 고정된 크기를 가지므로 직접 요소 추가는 불가능, 대신 새로운 배열을 반환 |
lst.insert(위치, 값): 특정 위치에 요소 삽입 | ||
요소 삭제 | lst.remove(): 특정 값을 가진 첫 번째 요소 삭제 | np.delete(array명, 값): 특정 위치에 있는 요소를 삭제하고 새로운 배열을 반환 |
lst.pop(): 특정 위치에 있는 요소를 삭제하고 반환 | ||
요소 검색 | lst.index(): 특정 값의 첫 번째 위치 반환 | np.where(조건): 특정 조건을 만족하는 요소의 인덱스 반환 |
lst.count(): 특정 값의 개수 반환 | np.count_nonzero(조건): 특정 조건을 만족하는 요소의 개수 반환 | |
요소 정렬 | lst.sort(): 리스트를 제자리에서 정렬 | np.sort(arr):배열을 정렬하여 새로운 배열로 반환 |
sorted(lst): 정렬된 새로운 리스트 반환 | ||
요소 합산 | sum(lst): 요소의 합 계산 | np.sum(arr): 요소의 합 계산 |
3. Numpy 고유 메서드 및 기능
1. 배열 생성 및 조작
- np.arrange(start, stop, step): 지정된 범위 내에서 균등 간격의 숫자 배열 생성
- np.reshape(arr, (row, column)): 배열의 형태 변경 (또는 arr.reshape(row,column) )
- np.transpose(arr): 배열의 전치(행과 열 바꾸기)
- np.concatenate(arr1, arr2): 배열 결합
2. 논리 연산 및 조건
- np.all(arr): 모든 요소가 참인지 검사
- np.any(arr): 하나라도 참인지 검사
3. 기타
- np.unique(arr): 배열에서 중복된 요소 제거하고 유일한 값 반환
return_counts=True: 각 고유 요소의 등장 횟수 반환하는 추가 옵션 가능 - np.cumsum(arr): 누적 합 계산
- np.diff(arr): 연속적인 요소 간의 차이 계산
'개발 지식' 카테고리의 다른 글
[Python] 순열과 조합 (combinations, permutations) (3) | 2024.10.18 |
---|---|
[ElK] Elasticsearch, Logstash, Kibana (0) | 2024.08.08 |
[DB] 비관계형 DB와 관계형 DB의 차이 (0) | 2024.08.08 |
[코테][2023 KAKAO BLIND RECRUITMENT]개인정보 수집 유효 기간 (0) | 2024.02.28 |
APM(Application Performance Management)이란? (0) | 2023.02.24 |