매일 매일 미라클 코딩

파이썬 - NumPy 라이브러리 본문

알고리즘/PYTHON

파이썬 - NumPy 라이브러리

뚜벅-뚜벅 2021. 3. 25. 11:41

딥러닝에 많이 쓰이는 파이썬 라이브러리

NumPy : 숫자를 다루는 파이썬 패키지다 라는 뜻. 통계정보 갖고있음

Pandas : 테이블 형태의 데이터를 가공하고 싶을 때

 

import numpy as np

# 1) 배열 생성
data1 = [0, 1, 2, 3, 4, 5]
a1 = np.array(data1)
print(type(a1))
print(a1)

data2 = [0.1, 5, 4, 12, 0.5]
a2 = np.array(data2)
print(a2)

print(a1.dtype)
print(a2.dtype)

a3 = np.array([0.5, 2, 0.01, 8])
print(a3)
print(a3.dtype)

a4 = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a4)
print(a4.dtype)


# 2) 범위를 지정해 배열 생성
a1 = np.arange(0, 10, 2)
print(a1)
print(type(a1))
print(a1.dtype)

# 0 부터 pi 값 까지 일정한 간격의 20개 수 생성
b2 = np.linspace(0, np.pi, 20)
print(b2)

a1 = np.zeros((3,4))
print(a1)

a3 = np.ones(5)
print(a3)

#3x3단위행렬 생성
a5 = np.eye(3)
print(a5)

# 형변환
num_f1 = np.array([10,21,0.451,2.643,76.43])
num_i1 = num_f1.astype(int)
print(num_i1)

# 0과 1사이의 난수 생성
r1 = np.random.rand(2,3) #2,3 행렬로 만들어라
r2 = np.random.rand() # 난수 한개만 만들어라
print(r1, r2)

r3 = np.random.rand(2,3,4) # 3행 4열짜리 배열을 두개 만듦(차원을 줄 수 있다_)
print(r3)

r4 = np.random.randint(10, size=(3,4)) # 3행4열 형태로 10까지의 정수 난수 생성
print(r4)

#배열의 연산
arr1 = np.array([10,20,30,40])
arr2 = np.array([1,2,3,4])
print(arr1+arr2)
print(arr1-arr2)
print(arr1*2) #for문돌려서 곱할 필요 없어서 많이 쓴다
print(arr2**2) # 2승
print(arr1 > 20) # 각 배열 인자값에 대한 boolean 값

#통계를 위한 연산
arr1 = np.arange(5)
print(arr1)

arr2 = [arr1.sum(), arr1.mean()] #총합과 평균
print(arr2)

arr3 = [arr1.std(), arr1.var()] # 표준편차와 분산 -> 데이터의 응집도를 알 수 있다. 평준화와 치우침
print(arr3)

arr4 = [arr1.min(), arr1.max()] # 최소 최대

arr5 = np.arange(1,5)
print(arr5)
print(arr5.cumsum())  #누적합
print(arr5.cumprod()) #누적곱

A = np.array([0,1,2,3]).reshape(2,2)
print(A)

B = np.array([3,2,1,0]).reshape(2,2)
print(B)

print(A.dot(B)) # 행렬의 곱

아래와 같은 에러가 나는경우

AttributeError: partially initialized module 'numpy' has no attribute 'array' (most likely due to a circular import)

numpy.py 라는 파이선 파일이 따로 존재하지 않는지 확인해 봐야한다. 나의 경우 실습 파일명을 numpy.py 로 생성해 위와 같은 오류가 발생했고, 파일명을 바꾸니 해결되었다.