본문 바로가기

DS/fast campus daily report

7.25 (딥러닝 인공지능) numpy 기초 - 1

numpy 기초 - 1 ()

import numpy as np

arr = np.array(5)
arr.shape
print( arr.ndim ) #차원의 갯수 

# 0으로 채워진 numpy array
import numpy as np
zeros = np.zeros([3,3])
zeros

zeros * 5

# 연속 배열 array 생성
np.arange(5) # 0 ~ 4
np.arange(4,9) # 4,5,6,7,8 

np.arange(9).reshape(3,3) # arange를 이용해서 1차원 data 생성후 reshape 한다

# index
nums = [1,2,3,4,5]
nums[2:]

# numpy indexing
arr[1,2] # 1열 2행의 data get

# numpy slicing
arr[1:]  # 2열, 3열 가져오기
arr[1:1:] # 2열, 2행부터 가져오기 

# boolean indexing
data = np.random.randn(3,3)
data

data[data<0] = 1
# 해당되는 data를 1로 define 해준다

# broadcast
arr = np.arange(9).reshape(3,3)
arr

arr + 3 # 모든 원소에 +3
arr * 3 # 모든 원소에 *3

arr * np.array([1,1,1]) # 모든 원소에 행렬 덧셈을 수행한다. 

# Math Function
np.multiply(arr, 3)

arr = np.random.randint(2, size=27).reshape(3,3,3)
arr_2 = np.random.randint(2, size=9).reshape(3,3)

arr * arr_2 
arr + arr_2 

np.sum(arr)
np.sum(arr + arr_2)
np.max(arr)
np.min(arr)

np.max(arr + arr_2, -1)
np.sum(arr + arr_2, 0)

# 다른 shape를 가진 행렬의 연산, 차원 ?????


arr = np.array([-1,2,3,4,5,9,2,3,])
np.argmax(arr)
>> 6 # 6번재 9가 제일 큼
np.argmin(arr)
>> 1 # 1번째 -1이 가장 작음
np.unique(arr)
>> array([2,3])