Numpyの使い方
Numpy
メモリ使用率は最大
import宣言
import numpy as np
arr = np.array([0,1,2,3,4])
データ型処理
1. float값들로 배열만들기
arr = np.array([1,2,3,4], dtype=float)
# array([1.,2.,3.,4.])
2. 타입보기
arr.dtype
# dtype('float')
3. 배열 자료형 바꾸기
arr.astype(int)
# array([1,2,3,4])
4. 배열 0으로 초기화하기
np.zeros(10, dtype=int)
5. 배열 3x5를 모두1로 초기화하기
np.ones((3,5), dtype=float)
6. 0~20사이를 2씩 띄워서 초기화하기
np.arrage(0, 20, 2)
# array([0,2,4,6....18])
7. 범위값을 5개로 나눠서 데이터 선언하기
np.linspace(0, 1, 5)
# array([0, 0.25, 0.5, 0.75, 1.])
乱数宣言
기본적으로 랜덤으로 선언할때
default 값으로 0~1사이의 값으로 나온다.
1. 2x2 난수선언
np.random.random((2,2))
2. 2x2 난수이고, 0~1값으로 선언
np.random.normal(0,1, (2,2))
2. 2x2 난수이고, 0~10값인 int형으로 선언
np.random.randint(0,10, (2,2))
宣言されたタイルデータ形状の表示
1. 선언
arr = np.random.randint(10, size=(3,4))
2. 차원
arr.ndim
# 2
3. 배열 모양
arr.shape # (3, 4)
4. 배열 크기
arr.size
# 12
5. 리스트 데이터 타입 보기
arr.dtype
# dtype('int64')
6. 리스트 자료형 보기
type(array)
# class 'numpy.ndarray'
アクセス配列値
arr = np.arange(7)
# array([0,1,2,3,4,5,6])
1. 값 접근
x[3]
# 3
x[7]
# index 7 is out of bounds
2. 값 변환
x[0] = 10
# array([10,1,2,3,4,5,6])
3. 범위값 추출 ( 슬라이싱 )
x[1:4]
# array([1,2,3])
x[1:]
# array([1,2,3,4,5,6])
x[:4]
# array([0,1,2,3])
x[::2]
# array([0,2,4,6])
2 Dアレイへのアクセス
1. 1부터 15까지 들어있는 (3,5)짜리 배열 선언
arr = np.arange(1, 16).reshape(3,5)
2. (2,3) 인덱스의 요소 선택
arr[2,3]
# 14
3. 행은 인덱스 0부터 인덱스 1까지,
열은 인덱스 1부터 인덱스 3까지 선택
arr[0:2,1:4]
#
[[2 3 4]
[7 8 9]]
アレイの外観を変更する
1.선언
arr = np.arange(8)
x.shape
# (8,)
2. 2x4 모양 변환
arr = x.reshape((2,4))
#
array([[0, 1, 2, 3],
[4, 5, 6, 7]])
arr.shape
# (2, 4)
1 Dアレイの接続
x = np.array([0, 1, 2])
y = np.array([3, 4, 5])
np.concatenate([x ,y])
# array([0,1,2,3,4,5])
2 Dアレイの水平接続
x = np.arange(0, 4).reshape(2,2)
y = np.arange(4, 8).reshape(2,2)
1. axis축을 1번으로
np.concatenate([x ,y], axis=1)
#
array([[0, 1, 4, 5],
[2, 3, 6, 7]])
垂直接続2 Dアレイ
x = np.arange(0, 4).reshape(2,2)
y = np.arange(4, 8).reshape(2,2)
1. axis축을 0번으로
np.concatenate([x ,y], axis=0)
#
array([[0, 1],
[2, 3],
[4, 5],
[6, 7]])
2 Dアレイを水平、垂直に分割する
1. 가로
arr = np.arange(16).reshape(4,4)
left, right = np.split(arr, [3], axis = 1)
1. 세로
arr = np.arange(16).reshape(4,4)
left, right = np.split(arr, [3], axis = 0)
アレイ演算
numpyは高速配列演算をサポート
きほんえんざん
arr = np.arange(4)
# array([0,1,2,3])
1. 더하기
arr + 5
# array([5, 6, 7, 8])
2. 빼기
arr - 5
# array([-5, -4, -3, -2])
3. 곱하기
arr * 5
# array([0, 5, 10, 15])
4. 나누기
arr / 5
# array([0., 0.2, 0.4, 0.6])
マトリックス間演算
x = np.arange(4).reshape((2, 2))
y = np.arange(4).reshape((2, 2))
x + y
#
array([[0, 2],
[4, 6]])
x - y
#
array([[0, 0],
[0, 0]])
マトリックス間演算2(ブロードキャスト)
arr = np.arange(9).reshape((3, 3))
arr + np.array((1,2,3))
#
array([[ 1, 3, 5],
[ 4, 6, 8],
[ 7, 9, 11]])
arr = np.arange(3).reshape((3, 1))
arr + np.arange(3)
#
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])
集約関数
arr = np.arange(10).reshape((2,5))
# 결과
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
1. 배열의 합
np.sum(arr)
# 45
2. 배열의 최소값
np.min(arr)
# 0
3. 배열의 최대값
np.max(arr)
# 9
4. 배열의 평균
np.mean(arr)
# 4.5
5. 표준편차 계산
np.std(arr)
# 2.8722813232690143
集約関数2
arr = np.arange(8).reshape((2,4))
# 결과
array([[0, 1, 2, 3],
[4, 5, 6, 7]])
1. 행단위로 계산
np.sum(arr, axis=0)
# array([ 4, 6, 8, 10])
2. 열단위로 계산
np.sum(arr, axis=1)
array([ 6, 22])
マスク演算
True False 배열을 통해 특정값을 뽑아내는 방법
arr = np.arange(5)
# array([0,1,2,3,4])
1. 조건값 미만인지 확인
arr < 3
# array([ True, True, True, False, False])
2. 조건값 이상인지 확인
arr > 5
# array([False, False, False, False, False])
3. 조건값에 해당하는 값들 추출
arr[arr < 3]
# array([0, 1, 2])
デフォルトリストをnumpyリストに変換
arr_list = [1,2,3,4,5]
numpy_list = np.array(arr_list)
type(arr_list)
# list
type(numpy_list)
# numpy.ndarray
Reference
この問題について(Numpyの使い方), 我々は、より多くの情報をここで見つけました https://velog.io/@tlsehguddn23/제목1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol