Python_Numpy


2021年06月01日

Numpyモジュールの読み込み

# Numpy 모듈 불러오기 
# 사용하기 전 무조건 실행 !!
import numpy as np
# import 불러오기, as로 별칭 설정

アレイの作成

# 1차원 배열 생성 - 대괄호 [] 
lst = [1,2,2,3,2,4,3,3,5,45]
arr = np.array([1,2,3,4,5])
# arr = np.array([lst]) 넣어도 된다~
arr
出力:array([1,2,3,4,5])
# 2차원 배열 생성 - 대괄호 [[]], [[],[]], [[],[],[],[]]등등
arr2 = np.array([[1,2], [3,4], [5,6]])
arr2
出力:array([1,2],
[3, 4],
[5, 6]])
# 2차원 배열 생성
arr2_2 = np.array([[1,2,3],[4,5,6]])
arr2_2
出力:array([1,2,3],[4,5,6])

アレイのプロパティ値の確認

# 배열의 크기 확인
arr.shape
出力:(5,)
arr2.shape
出力:(3,2)
arr2_2.shape
出力:(2,3)
arr2.size
出力:6
arr.size
出力:5
# 배열에 있는 데이터의 타입
arr.dtype
出力:dtype(「int 32」)
arr2.dtype
出力:dtype(「int 32」)
# 배열의 차원을 확인
arr.ndim
出力:1

練習問題

# 연습 문제 주어진 array에서 크기 차원 개수를 구하라

arr3 = np.array([[[1,2], [3,4]], [[5,6], [7,8]]])
arr3
print("배열의 크기 : {}".format(arr3.shape))
print("배열의 차원 : {}".format(arr3.ndim))
print("배열의 개수 : {}".format(arr3.size))
出力:
配列サイズ:(2、2、2)
アレイ次元:3
アレイ数:8

アレイを特定の値で作成

# 0으로 값을 채워서 배열을 생성
# np.zeros((행,열))
arr4 = np.zeros((3,4))
arr4
出力:
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
# 1로 값을 채워서 배열 생성
# np.ones((3,4))
# 실수 타입을 저장함
arr5 = np.ones((3,4))
arr5
出力:
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
# 원하는 값을 채워서 배열 생성
# np.full((행, 열), 특정한 값)
arr6 = np.full((3,4), 6)
arr6
出力:
array([[6, 6, 6, 6],
[6, 6, 6, 6],
[6, 6, 6, 6]])

一連の数値を含む配列の作成

# 1 ~ 50까지 담은 1차원 배열 생성
# 1. 1~50 까지 친다
# 2. for문 돌려서 list 저장한 다음에 np.array()
lst = []
for i in range(1, 51):
    lst.append(i)
arr7 = np.array(lst)
arr7
出力:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50])
# np.arange(시작값, 끝값, 증가값)
# 위 방법과는 달리 numpy에서 제공되는 함수인 arange로 쉽게 구현 가능
arr8 = np.arange(10, 51, 10)
arr8
出力:array([10,20,30,40,50])

ランダム値でアレイを作成

# np.random.rand(행, 열)
# 0~1` 사이의 값으로 랜덤하게 생성
np.random.rand(2,3)
出力:array([0.39378725,0.27768867,0.94353203]);
[0.83452131, 0.66112856, 0.97540292]])
# np.random.randint(시작값, 끝값, size = )
np.random.randint(1, 10, size = 5)
出力:array([8,2,2,1,2])
np.random.seed(100)
np.random.randint(1,11, size = (2,3))
出力:array([9,9,4],
[8, 8, 1]])

パターンを指定して作成

lst = [3.4, 1.2, 1.0, 5.4, 6.6]
lst
ar = np.array(lst, dtype = np.int64)
# 데이터 타입 확인
ar.dtype
出力:dtype(「int 64」)
# 데이터 타입 변환
ar2 = ar.astype(np.float64)
ar2
出力:array([3,1,1.5.6])
float実数値として表します.

アレイ演算

arr = np.array([1,2,3])
arr
出力:array([1,2,3])
# 요소별 연산이 가능
arr + 1
出力:array([2,3,4])
arr * 10
出力:array([10,20,30])
# 배열 간의 연산
arr + arr
出力:array([2,4,6])