Data Scientist/Python

[Python기초] Numpy A to Z

dkrehd 2022. 1. 2. 09:59
728x90
반응형

Numpy Basic

 

C언어로 만들어진 Python Library중 하나로 배열을 사용할 때 유용하게 쓰일 수 있다. 사용하는 방법은 다음과 같다.

먼저 라이브러리를 호출 하고 별명을 지어서 보다 편리하게 함수를 불러 올수 있다.

import numpy as np

 

자 그럼 이것을 통해 Numpy에 대해서  하나씩 공부해보자

 

1) 1차원 배열 정의하기

import numpy as np
mylist = [10,20,50,60,70]
x = np.array(mylist)
x

 

2) 2차원 배열 정의 하기

solution = np.array([[4,6,8,7],[20,5,6,9]])
solution

 

Numpy built in Methods & Function

 

1) 0~1의 난수 만들기

x = np.random.rand()
x

2) 0~1의 난수로 5x5 matrix 만들어보기

x = np.random.rand(5,5)
x

 

3) 표준 정규 분포 난수 만들기

x = np.random.randn()
x

 

4) 1~10 사이의 정수 중 난수 만들기

x = np.random.randint(1,10)
x

2

 

5) 1 ~ 100 사이의 정수 난수 15개 만들기

x = np.random.randint(1, 100, 15) # 시작, 끝, 얻고 싶은 개수(2차원을 얻고 싶으면 (2,2) 이렇게 작성해도됨
x

 

반응형

 

6) 일정한 간격으로 나열된 정수 배열 만들기

x = np.arange(1,50)
x

 

7) 원하는 간격으로 나열된 정수 배열 만들기

x = np.arange(1,50,5) # 시작, 끝, 간격
x

 

8) 대각선에만 1, 나머지는 0인 행렬 만들기

x = np.eye(5)
x

 

9) 전부 1로 구성된 배열 만들기

x = np.ones(10)
x

 

10) 전부 1로 구성된 5x5  Matrix 만들기

x = np.ones((5,5)) #tuple로 넣어줘야함
x

11) 전부 0으로 구성된 배열 만들기

x = np.zeros(10)
x

Numpy 모양과 길이 유형

 

먼저 1차원 배열을 정의 하자 이것을 가지고 공부 해볼 것이다.

mylist = [-30, 4, 50, 60, 29, 15, 22, 90]
x = np.array(mylist)

1) 배열의 길이를 구해보기

length = len(x)
length

8

 

2) 배열의 차원 구해보기

x.shape

3) 데이터 타입 구해보기

x.dtype

 

4) 1차원 배열을 2차원 배열로 바꾸기

z = x.reshape(2,4)
z

 

5) 배열의 최대값, 최소값 구하기

print("최대값 : ", x.max())
print("최소값 : ", x.min())

 

6) 배열의 최대값, 최소값의 위치 구하기

              0  1   2   3   4   5   6   7  
# mylist = [-30, 4, 50, 60, 29, 15, 22, 90]

print("최대값위치 : ", x.argmax())
print("최소값위치 : ", x.argmin())

 

Numpy 수학연산

 

1) 2개의 배열들 더하기

x = np.arange(1,10)
y = np.arange(1,10)
sum = x + y
sum

 

2) 배열의 제곱 구하기

squared = x**2
squared

 

3) 배열의 제곱근 구하기

sqrt = np.sqrt(squared)
sqrt

4) 배열의 지수 (exponential) 구하기

 z = np.exp(y)
 z

 

Numpy 슬라이싱 & 인덱싱

 

1) 배열의 각 항목에 1개씩 접근(인덱싱) 해보기

# index      0  1  2  3  4
x= np.array([20,40,50,21,15])

print("첫번째 원소 : ", x[0]) # 배열의 인덱스는 0부터 시작하기 때문에 0으로 접근
print("두번째 원소 : ", x[1])
print("마지막 원소 : ", x[-1])

 

2) 배열 여러개 항목 인덱싱 해보기

x[2:4]

 

 

3) 배열의 여러개 항목 인덱싱하여 값을 바꿔보기 (broadcasting)

x[0:2] = 10 #1, 2번째 원소값이 10으로 바뀜, 
x

 

4) 2차원 배열에 인덱싱 해보기 (행(row) 에 접근)

matrix = np.random.randint(1,10,(5,5))
matrix

matrix[2] #3번째 행에 접근

 

5) 2차원 배열의 각 항목에 접근해보기

matrix[0][1] # 행(row) / 열(column)

3

 

6) 2차원 배열 인덱싱 해보기

※ (행, 열)로 구분되고 ,가 없다면 행만 있고, 열은 전체를 가져온다고 해석하면 됨

mini_matrix = matrix[:3] #열(column)은 전체, 행은 1,2,3번째 행까지만 *인덱스는 0부터 시작이라는 것을 꼭 기억 !
mini_matrix

7) 2차원 배열 인덱싱 해보기

mini_matrix = matrix[:,2:] #행(row)은 전체, 열은 1,2,3번째 행까지만 *행, 열 이렇게 구분 되는 것을 꼭 기억!
mini_matrix

 

8) 조건부 인덱싱 하기 

 : 기 생성한 2차원 배열에서 3보다 큰 것들만 가져오는 예제!

  *배열이2차원 -> 1차원으로 바뀐다는것도 꼭 기억!

new_matrix = matrix[matrix>3]
new_matrix

: 짝수인 값만 가져오는 예제

new_matrix = matrix[matrix%2 == 0]
new_matrix

 

 

 

지금까지 파이썬 라이브러리중 하나인 Numpy에 대해서 공부해보았다. 많은 분들에게 도움이 되길 가슴 깊이 희망한다.

반응형