[object] numpy.array

반디·2023년 3월 7일
0

Python

목록 보기
9/11

numpy는 list 자료형에 비해 빠르고 효율적이며, 반복문 없이 배열(array)에 대한 계산을 수행할 수 있도록 지원하는 패키지입니다.

array

  • 데이터 type이 통일된 배열
    (\therefore dynamic typing not supported &각 element는 고정적인 size를 가짐)

https://www.slideshare.net/enthought/numpy-talk-at-siam

Example

import numpy as np

test_array = np.array([1, 2, 3, 4], int)

print(f"test_array {test_array}")
print(f"test_array type {type(test_array[0])}")

주요 method

name기능
reshapearray의 shape의 크기를 변경 (element 갯수는 유지)
flatten다차원 array \rightarrow 1차원 array
arangearray의 범위 지정, 값 list 생성

array vs list

arraylist
array의 데이터가 연속적으로 저장됨list의 데이터 값의 주소가 연속적으로 저장됨

https://jakevdp.github.io/blog/2014/05/09/why-python-is-slow/

위 그림의 경우처럼, [1, 2, 3, 4, 5, 6, 7, 8]을 저장한다고 하면,

  • array의 경우: pointer는 1~8이 저장된 연속적인 data buffer를 가리킴
  • list의 경우: pointer는 메모리의 static한 공간에 이미 저장되어있는 1~8의 주소를 가리키는 pointer값이, 연속적으로 저장된 buffer를 가리킴

Note

  • for loop < list comprehension < numpy

Example

import numpy as np

#list 
a = [1, 2, 3]
b = [3, 2, 1]

print("Let's play with list")
print(a[0] is b[-1]) #같은 메모리 주소

#array
npa = np.array(a)
npb = np.array(b)
print("Let's play with array")
print(npa[0] is npb[-1]) #다른 메모리 주소

참고문헌

profile
꾸준히!

0개의 댓글