▷ Numpy (Numerical Python) 란?
import numpy as np
: 다차원 배열(행렬)을 쉽게 처리하고 효율적으로 사용할 수 있도록 지원하는 파이썬의 라이브러리.
: 수치해석, 통계 관련 기능을 구현할 때 가장 기본이 되는 모듈.
: Ndarray 타입의 배열을 만들 수 있음.
( ※ Ndarray 타입 : N-dimension array의 약자. 다차원 배열을 의미.)
[ List 와 Ndarray 차이점 ]
1. 선언 형태의 차이
- List : 원소로 여러 가지 자료형을 허용. 내부 배열의 원소 개수가 달라도 된다.
- Ndarray : 원소로 한 가지 자료형만 허용. 내부 배열의 원소 개수가 같아야 한다.
# a List는 여러 가지 자료형을 허용, b Ndarray는 한 가지 자료형만 허용.
a = [1, 2, 'a', 'b'] # [1, 2, 'a', 'b']
b = np.array([1, 2, 'a', 'b']) # ['1', '2', 'a', 'b']
# c List는 내부 배열의 원소 개수가 달라도 되고,
# d Ndarray는 내부 배열의 원소 개수가 같아야 한다.
c = [[1], [2, 3], [4, 5, 6]]
d = np.array([1], [2, 3], [4, 5, 6]]) # different lengths or shapes. 에러 발생.
2. 연산의 차이
- List : 더하기 연산만 가능. 빼기, 곱하기, 나누기 연산은 불가.
- Ndarray : 빼기, 곱하기, 나누기 연산도 동일하게 같은 위치의 원소끼리 연산 가능.
list1 = [1, 3, 5]
list2 = [2, 4, 6]
print(list1 + list2)
# 결과 : [1, 3, 5, 2, 4, 6]
ndarray3 = np.array([1, 3, 5])
ndarray4 = np.array([2, 4, 6])
print(ndarray3 + ndarray4)
# 결과 : array([ 3, 7, 11])
list1 = [1, 3, 5]
list2 = [2, 4]
print(list1 + list2)
# 결과 : [1, 3, 5, 2, 4]
ndarray3 = np.array([1, 3, 5])
ndarray4 = np.array([2, 4])
print(ndarray3 + ndarray4)
# 오류 발생.
Numpy Array 만드는 다양한 방법
▶ np.zeros(m, n) : m x n 크기의 영행렬 생성
▶ np.ones(m, n) : m x n 크기의 유닛행렬 생성
▶ np.full((m, n), k) : m x n 크기의 모든 원소가 k인 행렬 생성
▶ np.eye(n) : m x n 크기의 단위행렬 생성
print(np.zeros((2,2))) # 영행렬 생성
print(np.ones((2,3))) # 유닛행렬
print(np.full((2,3), 5))
print(np.eye(3)) # 단위행렬
▶ .flatten() : 행렬의 평탄화 작업
평탄화 작업이란? N차원 배열을 1차원 배열로 변환시켜 주는 작업
ndarr = [[1,2], [3,4], [5,6]]
ndarr.flatten()
# [1,2,3,4,5,6]
▶ .reshape() : 행렬의 차원을 변경하는 작업
▶ .arrange() : 특정 배열을 만들어주는 작업
▶ .random.randint(low [, high] [, size]) : 해당 범위에 해당하는 난수로 배열 생성
▶ .random.rand(m, n) : m x n 크기의 배열 생성 및 난수 0~1 사이의 난수로 초기화
# numpy의 random 모듈의 random함수를 사용
array1 = numpy.random.random(5)
▶ ndarray[ 조건식 ] : 조건식을 넣어서 해당하는 값만 추출
'BE > Python' 카테고리의 다른 글
[Python] pandas로 데이터 분석하기 - DataFrame 생성. (0) | 2023.11.17 |
---|---|
[Python] Numpy 유용한 함수 (통계 함수) (0) | 2023.11.16 |
[Python] 모듈(module) 사용하기 (1) | 2023.11.13 |
[Python] 재귀 함수란 ? (Recursive Function) (1) | 2023.11.11 |
[Python] f 문자열 포매팅 ( f-string formatting) (0) | 2023.11.08 |
댓글