코인시던스의 기록파이썬 numpy 사용 이유? numpy 배열 만들기, 난수 배열 만들기코인시던스 2021. 1. 27. 21:28 1. Numpy 란? Numerical Python 으로 Python 에서 '대규모 다차원 배열'을 다룰 수 있게 도와주는 라이브러리 입니다. ※ 참고로 왜 '대규모 다차원 배열'을 사용할까요? 데이터의 대부분은 숫자 배열로 볼 수 있기 때문입니다. 예를 들어 흑백 이미지는 픽셀의 밝기와 명암을 2차원 배열 데이터로 표현할 수 있고. 사운드 데이터는 시간 대비 음악을 나타내는 1차원 배열로 볼 수 있습니다. 이렇게 데이터를 배열로 보고, 배열을 효과적으로 저장, 가공하는 것이 데이터를 처리하는 가장 근본적인 절차입니다. 2. Numpy 사용 이유 List 대신 Numpy 를 사용하는 이유는 비교적 빠른 연산을 지원하고 메모리를 효율적으로 사용하기 때문입니다. 3. List 로 부터 Numpy 배열을 만드는 법 아래 사진과 설명을 참조해주세요. - import numpy as np ① import numpy : 라이브러리 이기 때문에 import 를 통해서 numpy 를 가지고 옵니다. ② as np : 관습적으로 numpy 는 np 로 줄여서 사용합니다. as np 를 붙여서 np 로 줄여서 쓸 수 있게 합니다. - np.array([1,2,3,4,5]) : 리스트를 넣어주면 array 개체가 반환됩니다. 리스트로부터 다양한 배열의 형태를 만들 수 있는데요. 정수형태가 아닌 실수 형태로 들어갔을 때는 모든 데이터가 실수로 바뀝니다. 2차원 배열도 만들 수 있으며, 데이터의 타입도 정할 수 있습니다. list 는 [1, True, 1.4, "s"] 처럼 실수형, boolean, 정수형, 문자열 type 에 관계 없이 구성될 수 있지만, array 는 list 와 다르게 단일타입으로 구성됩니다. dtype = float 으로 해주면 array 가 모두 실수형으로 구성되고, arr.dtype 를 통해 type 을 확인할 수 있습니다. 데이터 타입을 바꾸기 위해서는 astype(바꿀데이터자료형) 을 쓰시면 됩니다. int (정수형 타입) : int32 < int64 = i8 float (실수형 타입) : float_ = float64 = f8 str (문자열 타입) : str, U(= 유니코드의 약자) 배열 만드는 방법을 알아볼까요? 자세한 예시는 아래 그림을 참조해주세요. ① np.zeros 함수 : data 를 0 으로 채워줍니다. ex) np.zeros(10, dtype=int) : 0 으로 10 개의 데이터를 가진 정수형 타입만들기 ② np.ones 함수 : data 를 1 로 채워줍니다. 배열은 튜플 형태로 적어줍니다. ex) np.ones((3,5), dtype=float) : (3,5) 배열로 실수형 타입 만들기 ③ np.arrange 함수 : 파이썬의 range 함수와 비슷하게 동작합니다. ex) np.arange(0, 20, 2) 0~20전까지 step 을 2개 뛰면서 나타내기 ④ np.linspace 함수 ex) np.linspace(0, 1, 5) 0~1 사이를 5개로 나눠서 만들기 np.random 에 있는 함수들을 사용해서 난수로 채워진 배열을 만들 수도 있습니다. ⑤ np.random.random : 튜플을 인자로 받게 됩니다. ex) np.random.random((2,2)) : random 수를 2 by 2 행렬로 받게 됩니다. ⑥ np.random.normal : 정규분포로 데이터를 추출해냅니다. 평균, 표준 편차, 배열을 차례로 적어주면 됩니다. ex) np.random.normal(0, 1, (2, 2)) : 평균이 0 이고, 표준 편차가 1인 정규분포에서 2 by 2 행렬로 뽑아주세요. ⑥ np.random.randint : ex) np.random.randint(0, 10, (2,2)) : 0~10까지 2 by 2 행렬로 출력해주세요~ python 을 사용하다보면 원하는 특정 값으로 배열을 초기화 하여 사용하고 싶을 때 가 있다. 이럴때에는 간단히 numpy 모듈의 함수들을 사용하면 된다. 코드는 아래와 같으며 원하는 모양을 (행, 열) 의 순서대로 적어주면 된다. (행렬의 세로, 가로 개수를 말한다.) 1. 0 으로 초기화된 배열 생성하는 법
2. 1 으로 초기화된 배열 생성하는 법
3. 원하는 값으로 초기화된 배열 생성하는 법 => () 뒤에 원하는 값을 적어준다. |