pre boost course-numpy

Sunghee Park·2022년 12월 1일
0

MLDL

목록 보기
2/6
import numpy as np
test_array=np.array([1,4,5,8], float)

하나의 데이터 type만 배열에 넣을 수 있음
List [1,0.7,0.5] 안됨
한가지 데이터 타입만 들어감
dynamic typing not supported

  • numpy array
    data가 공간에 차례대로 할당되어 붙어있음
    차례대로 값이 들어가서 연산이 좋아짐
    메모리 위치를 고려해서 같은 위치끼리 더하면 되어서 메모리 접근성이 더 좋음
    연산을 할때 메모리 크기가 일정해서 데이터를 저장하는 공간을 잡기도 훨씬 더 효율적임

  • python list
    5~256 까지의 값이 메모리 어딘가에 스택상의 공간에 있음
    7,8,9,10을 넣는다면 값 자체가 리스트에 들어가는게 아니라 걔의 주소갑을 리스트에 차례대로 저장하게 됨
    리스트 1개 에서 - 주소값 할당 된거 하나더 들어가야지만 원래 값을 찾는 구조
    리스트의 변형이 쉬움

array creation

test_array=np.array([1,4,5,"8"], float)
tesat_array
# array([1.,4., 5., 8.])

array shape




ndim, size

array dtype

array nbytes

Handling shape

reshape

  • array의 shape 크기 변경, element 갯수는 동일
test_matrix = [[1,2,3,4],[1,2,5,8]]
np.array(test_matrix).shape
#(2,4)

np.array(test_matrix).reshape(8,)
#array([1,2,3,4,1,2,5,8])

np.array(test_matrix).reshape(8,).shape
#(8,)
  • size를 기반으로 row 개수 선정 : -1

flatten

  • 다차원 array를 1차원 array로 변환
test_matrix=[[[1,2,3,4],[1,2,5,8]],[[1,2,3,4],[1,2,5,8]]]
np.array(test_matrix).flatten()
#array([1,2,3,4,1,2,5,8.......])

indexing & slicing

indexing for numpy array

  • list와 달리 이차원 배열에서 [0,0] 표기법을 제공
  • matrix일 경우 앞은 row, 뒤는 column을 의미함
test_example = np.array([[],[]],int)
test_example
#array([[1,2,3],
        [4,5,6]])

test_example[0][0]
#1
test_example[0,0]
#1

test_example[0][0]=12
test_example
# array([[12,2,3],
         [4,5,6]])
         
test_example[0][0]=5
test_example[0,0]
#5

slicing for numpy array

  • list와 달리 행과 열 부분을 나눠서 slicing이 가능
  • matrix의 부분 집합 추출시 유용

test_example=np.array([[1,2,5,8],[1,2,5,8],[1,2,5,8],[1,2,5,8]],int)
test_example[:2,:]
#array([[1,2,5,8],
	    [1,2,5,8]])

test_example=np.array([[1,2,3,4,5],[6,7,8,9,10]],int)
test_example[:,2:]
#array([[3,4,5],
		[8,9,10]])
test_example[1,1:3]
#array([[7,8])
test_example[1:3]
#array([[6,7,8,9,10]])

0개의 댓글