250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

NumPy๋ž€? ๋ณธ๋ฌธ

๐Ÿ Python/NumPy

NumPy๋ž€?

ใ…… ใ…œ ใ…” ใ…‡ 2022. 2. 3. 13:13
728x90
NumPy ์†Œ๊ฐœ

Numerical Python์„ ์˜๋ฏธํ•˜๋ฉฐ ํŒŒ์ด์ฌ์—์„œ ์„ ํ˜•๋Œ€์ˆ˜ ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ํŒจํ‚ค์ง€์ด๋‹ค. ๋‹ค์ฐจ์›์˜ ํ–‰๋ ฌ๊ตฌ์กฐ์ธ ndarray๋ฅผ ์ง€์›ํ•˜์—ฌ ๋ฐฐ์—ด์„ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

๋ชจ๋“ˆ ์ž„ํฌํŠธ
import numpy as np

as np๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฝ์–ด๋กœ ๋“ˆ์„ ํ‘œํ˜„ํ•ด ์ฃผ๋Š”๊ฒƒ์ด ์ข‹์Œ

 

 

array()
array1 = np.array([1,2,3])
print('array1 type : ',type(array1))
print("array1 ํ˜•ํƒœ : ",array1.shape)
#1์ฐจ์› array๋กœ 3๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

array2 = np.array([[1,2,3],
                  [2,3,4]])
print('array2 type : ',type(array2))
print("array2 ํ˜•ํƒœ : ",array2.shape)
#2์ฐจ์› array๋กœ 2๊ฐœ์˜ ๋กœ์šฐ์™€ 3๊ฐœ์˜ ์ปฌ๋Ÿผ์œผ๋กœ ์ด๋ฃจ์–ด์ง

array3 = np.array([[1,2,3]])
print('array3 type : ',type(array3))
print("array3 ํ˜•ํƒœ : ",array3.shape)
#1๊ฐœ์˜ ๋กœ์šฐ์™€ 3๊ฐœ์˜ ์ปฌ๋Ÿผ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ 2์ฐจ์›๋ฐ์ดํ„ฐ์ž„

[1,2,3] -> 1์ฐจ์› ๋ฐ์ดํ„ฐ

[[1,2,3]] -> 2์ฐจ์› ๋ฐ์ดํ„ฐ

#๊ฐ array์˜ ์ฐจ์› ํ™•์ธ
print("array1 : {:0}์ฐจ์›".format(array1.ndim))
print("array2 : {:1}์ฐจ์›".format(array2.ndim))
print("array3 : {:2}์ฐจ์›".format(array3.ndim))

#output
array1 : 1์ฐจ์›
array2 : 2์ฐจ์›
array3 : 2์ฐจ์›

๋ฐ์ดํ„ฐ์˜ ๊ฑด์ˆ˜๋Š” ๊ฐ™์ง€๋งŒ ์ฐจ์›์ด ๋‹ค๋ฆ„

#ndarray๋‚ด์—๋Š” ์„œ๋กœ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…๋งŒ ๊ฐ€๋Šฅ
#๋ฆฌ์ŠคํŠธ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
#๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ด ์„ž์—ฌ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ndarray๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๊ฐ€ ๋” ํฐ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ํ˜• ๋ณ€ํ™˜์„ ์ผ๊ด„ ์ ์šฉ

list1 = [1,2,'test']
array1 = np.array(list1)
print(array1,array1.dtype)

list2 = [1,2,3.0]
array2 = np.array(list2)
print(array2,array2.dtype)

#output
['1' '2' 'test'] <U11
[1. 2. 3.] float64

intํ˜•์ด ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž์—ด ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜

intํ˜•๊ณผ floatํ˜•์ด ์„ž์—ฌ์žˆ๋Š” ๊ฒฝ์šฐ๋„ float64ํ˜•์œผ๋กœ ๋ณ€ํ™˜

 

arange()
sequence_array = np.arange(10)
print(sequence_array)
print(sequence_array.dtype,sequence_array.shape)

arange()๋Š” 0๋ถ€ํ„ฐ ํ•จ์ˆ˜ ์ธ์ž ๊ฐ’ -1๊นŒ์ง€์˜ ๊ฐ’์„ ์ˆœ์ฐจ์ ์œผ๋กœ ndaarry์˜ ๋ฐ์ดํ„ฐ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜

 

zeros()
zero_array = np.zeros((3,2),dtype = 'int32')
print(zero_array)
print(zero_array.dtype,zero_array.shape)

one_array = np.ones((3,2))
print(one_array)
print(one_array.dtype,one_array.shape)

zeros() ํ•จ์ˆ˜๋Š” ํŠœํ”Œํ˜•ํƒœ์˜ shape๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ๋ชจ๋“  ๊ฐ’์„ 0์œผ๋กœ ์ฑ„์šด ํ•ด๋‹น shape์„ ๊ฐ€์ง„ ndarray๋กœ ๋ณ€ํ™˜

default๋Š” float64ํ˜•์˜ ๋ฐ์ดํ„ฐ

 

reshape()
array1 = np.arange(10)
print('array1:\n',array1)

array2 = array1.reshape(2,5)
print('array2:\n',array2)

array3 = array1.reshape(5,2)
print('array3:\n',array3)

reshape()๋Š” ndarray๋ฅผ ํŠน์ • ์ฐจ์› ๋ฐ ํฌ๊ธฐ๋กœ ๋ณ€ํ™˜

1์ฐจ์›์ธ ndarray๋ฅผ 2*5์™€ 5*2๋กœ ๋ณ€ํ™˜ํ•ด์คŒ

array1.reshape(4,3)

์ง€์ •๋œ ์‚ฌ์ด์ฆˆ๋กœ ๋ณ€ํ™˜์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ

 

array1 = np.arange(10)
print(array1)
array2 = array1.reshape(-1,5)
print('array2 shape:',array2.shape)
array3 = array1.reshape(5,-1)
print('array3.shape:',array3.shape)

#output
[0 1 2 3 4 5 6 7 8 9]
array2 shape: (2, 5)
array3.shape: (5, 2)

reshape()์— -1์„ ์ธ์ž๋กœ ์ ์šฉํ•˜๋ฉด ์›๋ž˜ ndarray์™€ ํ˜ธํ™˜ํ•˜๋Š” ์ƒˆ๋กœ์šด ์ธ์ž๋กœ ์ ์šฉ๋จ

array4 = array1.reshape(-1,4)

10๊ฐœ์˜ ์ธ์ž๋ฅผ ๊ฐ€์ง„ ndarray๋Š” 4๊ฐœ์˜ ๋กœ์šฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ

#tolist๋Š” ๋ฆฌ์ŠคํŠธ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•ด์คŒ
array1= np.arange(8)
array3d = array1.reshape((2,2,2))
print('array3d:\n',array3d.tolist())

#3์ฐจ์› ndarray๋ฅผ 2์ฐจ์› ndarray๋กœ ๋ณ€ํ™˜
array5 = array3d.reshape(-1,1)
print('array5:\n',array5.tolist())
print('array5 shape:',array5.shape)

#1์ฐจ์› ndarray๋ฅผ 2์ฐจ์›์œผ๋กœ ๋ณ€ํ™˜
array6 = array1.reshape(-1,1)
print('array6:\n',array6.tolist())
print('array6 shape:',array6.shape)

reshape(-1,1)์€ ์›๋ณธ ndarray๊ฐ€ ์–ด๋–ค ํ˜•ํƒœ์ด๋”๋ผ๋„ 2์ฐจ์›์ด๊ณ , ์—ฌ๋Ÿฌ ๋กœ์šฐ๋ฅผ ๊ฐ€์ง€๋˜ ๋ฐ˜๋“œ์‹œ 1๊ฐœ์˜ ์นผ๋Ÿผ์„ ๊ฐ€์ง„ ndarray๋กœ ๋ณ€ํ™˜๋จ

 

 

 

 

728x90
Comments