본문 바로가기
컴퓨터 언어/Python_NumPy

[Numpy] numpy 배열 생성 방법 (np.array(), np.asarray(), np.asfarray(), np.asarray_chkfinite(), np.zeros_like(), np.ones_like(), np.empty_like() )

by SuperMemi 2020. 5. 19.
반응형

[ Python 3 ] Numpy 란 무엇인가? (ndarray 클래스)

 

[ Python 3 ] Numpy 란 무엇인가? (ndarray 클래스)

NumPy 소개 Numpy(보통 "넘파이"라고 발음)는 수치 해석용 Python 패키지이다. 다차원의 행렬 자료구조인 ndarray를 지원하여 벡터와 행렬을 사용하는 선형대수 계산에 주로 사용된다. C로 구현된 CPython�

supermemi.tistory.com

앞선 글에서 간단히 numpy에 대해서 알아 보았다.

 

이번 글에서는 numpy 배열을 생성하는 여러가지 방법에 대해서 알아보도록 하겠다.

 


np.array()

 

  -  ndarray(배열)을 만들 수 있다.

>>> import numpy as np

	# np.array 를 통해 ndarray를 생성할 수 있다.
    
>>> arr = np.array([1,2,3,4,5,6]) 
>>> arr
array([1, 2, 3, 4, 5, 6])

	# dtype을 통해 배열 자료의 종류를 알 수 있다.
    
>>> arr.dtype
dtype('int32')

>>> arr = np.array([1,2,3],dtype = float)
>>> arr.dtype

dtype('float64')

 


np.asarray()

 

  -  np.array() 와 차이점은 다음과 같다.

  -  이미 ndarray의 데이터 형태 (data type)이 설정 되어 있다면, 데이터 형태가 다를 경우에만 복사(copy) 가 된다.

 

# 이미 존재하는 배열에 대해서는 복사하지 않는다.

>>> a = np.array([1,2,3])

>>> np.asarray(a) is a
True

# 만약 dtype이 설정 되어 있다면, 데이터 형태가 다를 경우에만 복사한다.

>>> b = np.array([1,2,3],dtype = np.float32)

# np.array는 데이터 형태 일치 여부에 상관없이 복사함.
>>> np.array(b, dtype = np.float32) is b  
False

# np.asarray

  # 데이터 형태가 같을때 복사하지 않는다.
>>> np.asarray(b, dtype = np.float32) is b  
True
  # 데이터 형태가 다를때 복사한다.
>>> np.asarray(b, dtype = np.float64) is b  
False

 


np.asfarray()

 

  -  dtype을 따로 설정하지 않아도 자동으로 float 형태로 바꾸면서 배열을 만든다.

>>> e = [1,2,3,4,5]
>>> np.asfarray(e)
array([1., 2., 3., 4., 5.])

>>> np.asfarray(e).dtype
dtype('float64')

 


np.asarray_chkfinite()

 

  -  배열로 만들려고 하는 데이터 input에 결측값(NaN)이나 무한수(infinite number)가 들어잇을 경우 'ValueError'를 반환하게 한다.

 

  # 결측치나 무한수가 존재할 경우 오류를 반환한다.
>>> d = [1,2,3,4,np.nan]

>>> np.asarray_chkfinite(d, dtype=float)

ValueError: array must not contain infs or NaNs

 


np.zeros_like(), np.ones_like(), np.empty_like()

 

  -  이미 존재하는 array의 shape은 유지하면서 데이터를 '0', '1', '빈 배열' 로 반환한다.

>>> k = np.array(range(10)).reshape(2,5)
>>> k
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
>>>
>>> np.zeros_like(k)
array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])
>>>
>>> np.ones_like(k)
array([[1, 1, 1, 1, 1],
       [1, 1, 1, 1, 1]])
>>>
>>> np.empty_like(k)
array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])

 


자료 참고 및 출처

rfriend.tistory.com/tag/np.asfarray%28%29

 

'np.asfarray()' 태그의 글 목록

R, Python 분석과 프로그래밍, 통계, Machine Learning, Greenplum, PostgreSQL, Hive, 분석으로 세상보기, 독서일기

rfriend.tistory.com

 

반응형