Search
Duplicate

Numpy

์ƒ์„ฑ์ž
๋ถ„๋ฅ˜
ํŒŒ์ด์ฌ
์ƒ์„ฑ์ผ
2023/02/16 14:02

Numerical Python - Numpy

Numpy

โ€ข
ํŒŒ์ด์ฌ์˜ ๊ณ ์„ฑ๋Šฅ ๊ณผํ•™ ๊ณ„์‚ฐ์šฉ ํŒจํ‚ค์ง€
โ€ข
Matrix ์™€ Vector ์™€ ๊ฐ™์€ Array ์—ฐ์‚ฐ์˜ ์‚ฌ์‹ค์ƒ์˜ ํ‘œ์ค€
โ€ข
์ผ๋ฐ˜ List์— ๋น„ํ•ด ๋น ๋ฅด๊ณ , ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ 
โ€ข
๋ฐ˜๋ณต๋ฌธ ์—†์ด ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›
โ€ข
์„ ํ˜•๋Œ€์ˆ˜์™€ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
โ€ข
C, C++, ํฌํŠธ๋ž€ ๋“ฑ์˜ ์–ธ์–ด์™€ ํ†ตํ•ฉ ๊ฐ€๋Šฅ
conda install numpy
Shell
๋ณต์‚ฌ
import numpy as np
Python
๋ณต์‚ฌ

Array creation

โ€ข
shape : numpy array ์˜ object์˜ dimension ๊ตฌ์„ฑ์„ ๋ฐ˜ํ™˜ํ•จ
โ€ข
dtype : numpy array ์˜ ๋ฐ์ดํ„ฐ type์„ ๋ฐ˜ํ™˜ํ•จ

Array shape - ndim & size

โ€ข
ndim - number of dimension
โ€ข
size - data ์˜ ๊ฐœ์ˆ˜

Array dtype

โ€ข
C์˜ data type๊ณผ compatible

Handling shape

reshape

โ€ข
Array์˜ shape ์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•จ (element ์˜ ๊ฐฏ์ˆ˜๋Š” ๋™์ผ)
โ€ข
Array์˜ size๋งŒ ๊ฐ™๋‹ค๋ฉด ๋‹ค์ฐจ์›์œผ๋กœ ์ž์œ ๋กœ์ด ๋ณ€๊ฒฝ๊ฐ€๋Šฅ

flatten

โ€ข
๋‹ค์ฐจ์› array๋ฅผ 1์ฐจ์› array๋กœ ๋ณ€ํ™˜

Indexing & Slicing

indexing

โ€ข
List์™€ ๋‹ฌ๋ฆฌ ์ด์ฐจ์› ๋ฐฐ์—ด์—์„œ [0, 0] ๊ณผ ๊ฐ™์€ ํ‘œ๊ธฐ๋ฒ•์„ ์ œ๊ณตํ•จ
โ€ข
Matrix ์ผ ๊ฒฝ์šฐ ์•ž์€ row, ๋’ค๋Š” column์„ ์˜๋ฏธํ•จ

slicing

โ€ข
List์™€ ๋‹ฌ๋ฆฌ ํ–‰๊ณผ ์—ด ๋ถ€๋ถ„์„ ๋‚˜๋ˆ ์„œ slicing์ด ๊ฐ€๋Šฅํ•จ
โ€ข
Matrix ์˜ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์„ ์ถ”์ถœํ•  ๋•Œ ์œ ์šฉํ•จ

Creation Function

arange

โ€ข
array ์˜ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜์—ฌ, ๊ฐ’์˜ list๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด

ones, zeros, and empty

โ€ข
zeros
โ—ฆ
0์œผ๋กœ ๊ฐ€๋“์ฐฌ ndarray ์ƒ์„ฑ
โ€ข
ones - zero ์™€ ๋™์ผ
โ€ข
empty = shape ๋งŒ ์ฃผ์–ด์ง€๊ณ  ๋น„์–ด์žˆ๋Š” ndarray ์ƒ์„ฑ
โ—ฆ
๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ธฐํ™”๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค

something_like

โ€ข
๊ธฐ์กด ndarray์˜ shape ํฌ๊ธฐ ๋งŒํผ 1, 0 ๋˜๋Š” empty array๋ฅผ ๋ฐ˜ํ™˜

identity

โ€ข
๋‹จ์œ„ ํ–‰๋ ฌ (i ํ–‰๋ ฌ)์„ ์ƒ์„ฑํ•จ

eye

โ€ข
๋Œ€๊ฐ์„ ์ธ 1์ธ ํ–‰๋ ฌ, k ๊ฐ’์˜ ์‹œ์ž‘ index ์˜ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅ

random sampling

โ€ข
๋ฐ์ดํ„ฐ ๋ถ„ํฌ์— ๋”ฐ๋ฅธ ์ƒ˜ํ”Œ๋ง์œผ๋กœ array ์ƒ์„ฑ

sum

โ€ข
ndarray์˜ element ๋“ค ๊ฐ„์˜ ํ•ฉ์„ ๊ตฌํ•จ, list์˜ sum ๊ธฐ๋Šฅ๊ณผ ๋™์ผ

axis

โ€ข
๋ชจ๋“  operation function์„ ์‹คํ–‰ํ•  ๋•Œ, ๊ธฐ์ค€์ด ๋˜๋Š” dimension ์ถ•
โ€ข
์ƒˆ๋กœ ์ƒ๊ธฐ๋Š” ์ถ•์ด axis=0, ๊ธฐ์กด์— ์žˆ๋˜ ์ถ•์ด axis=1 ์ด ๋œ๋‹ค

concatenate

โ€ข
Numpy array๋ฅผ ํ•ฉ์น˜๋Š” ํ•จ์ˆ˜

Operations b/t arrays

โ€ข
Numpy ๋Š” array ๊ฐ„์˜ ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์น™ ์—ฐ์‚ฐ์„ ์ง€์›ํ•œ๋‹ค

Element-wise operations

โ€ข
Array๊ฐ„ shape ์ด ๊ฐ™์„ ๋•Œ ์ผ์–ด๋‚˜๋Š” ์—ฐ์‚ฐ

Dot product

โ€ข
Matrix ์˜ ๊ธฐ๋ณธ ์—ฐ์‚ฐ
โ€ข
dot ํ•จ์ˆ˜ ์‚ฌ์šฉ

broadcasting

โ€ข
Shape ์ด ๋‹ค๋ฅธ ๋ฐฐ์—ด ๊ฐ„ ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ
ex) Matrix + ์Šค์นผ๋ผ
โ€ข
Scalar - Vector ์™ธ์—๋„
โ€ข
Vector - matrix ๊ฐ„์˜ ์—ฐ์‚ฐ๋„ ์ง€์›

All & Any

np.where

โ€ข
์กฐ๊ฑด์— ๋งž๋Š” ์ธ๋ฑ์Šค ๊ฐ’์„ ๋ฑ‰์–ด๋‚ธ๋‹ค

argmax & argmin

โ€ข
์ตœ๋Œ€๊ฐ’, ์ตœ์†Œ๊ฐ’ ์ฐพ์„ ๋•Œ

boolean index

โ€ข
numpy๋Š” ๋ฐฐ์—ด์€ ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ๊ฐ’์„ ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ์ถ”์ถœ ํ•  ์ˆ˜ ์žˆ์Œ
โ€ข
Comparison operation ํ•จ์ˆ˜๋“ค๋„ ๋ชจ๋‘ ์‚ฌ์šฉ๊ฐ€๋Šฅ

fancy index

โ€ข
numpy ๋Š” array๋ฅผ index value ๋กœ ์‚ฌ์šฉํ•ด์„œ ๊ฐ’์„ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•
โ€ข
Matrix ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋„ ๊ฐ€๋Šฅ