반응형
ndArray 다차원 배열 (배열 -> 크기가 고정)
(한가지 자료형으로 이루어져있어야함)
< numpy 객체 >
import numpy as np
a = np.array([ #np.array -> 컬렉션을 배열로 만들어줌
[1,2,3],
[4,5,6]
])
print(a.size) # 원소의 갯수
print(a.ndim) # 몇 차원? ( [ [] ] list안의 list-> 2차원)
print(a.shape) # 2행 3열
print(a.itemsize) # 원소 하나의 크기(bit)
print(a.data) # 저장된 주소
6
2
(2, 3)
4
<memory at 0x000001E1536F3790>
< numpy 원소 타입 확인>
~.dtype.name
boo_array = np.array([True,False,False])
boo_array.dtype.name
complex_array = np.array([1+2j,3+2j,5+2j],dtype=complex) #복소수 (실수+소수)
complex_array.dtype.name
'bool'
'complex128'
< np.zeros((r,c)) 다차원 배열 생성 >
np.zeros((3,3)) # 0들로 구성된 3행 3열
np.ones((3,3)) # 1들로 구성된 3행 3열
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
< flatten() - 다차원 1차원으로 만들기 >
a = np.zeros((3,3))
print(a)
a.flatten() # 1차원으로
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
array([0., 0., 0., 0., 0., 0., 0., 0., 0.])
< numpy.arange - 간편 배열 생성 >
np.arange(3,10,1.5) #start, end , step
array([3. , 4.5, 6. , 7.5, 9. ])
< reshape - 다 차원 배열 생성하기 >
a = np.arange(0,12)
print(a)
b= a.reshape(3,4) #비파괴형 #3행 4열
b
[ 0 1 2 3 4 5 6 7 8 9 10 11]
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
< linspace - 정한 간격으로 값 추출 후 배열 만들기 >
# 0~9 구간을 7개 수를 일정한 간격으로 추출하려면? linearly spaced values
np.linspace(0,10,7)
#np.linspace(0,10,7,endpoint=False) # 마지막 숫자 10은 포함하지 않는다
array([ 0. , 1.66666667, 3.33333333, 5. , 6.66666667,
8.33333333, 10. ])
< np.random - 랜덤 숫자>
a = np.random.random(8).reshape((2,4)) #랜덤 숫자 8개를 2행 4열 형태로
a
array([[0.87861829, 0.77451069, 0.27540366, 0.38975563],
[0.37293004, 0.39192104, 0.66091684, 0.21026256]])
함수 안쓰고 ( reshape ) -> 랜덤 숫자를 받아 2행 3열의 다차원 배열로 만들기
# Quiz_1 2행 3열
import random
a = np.zeros((2,3))
for row in range(2):
for col in range(3):
#a[row][col] = random.randint(0,20)
a[row,col] = random.randint(0,20)
a
array([[16., 6., 8.],
[19., 15., 15.]])
반응형