반응형
[ Python 3 ] Numpy 란 무엇인가? (ndarray 클래스)
앞선 글에서 간단히 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
반응형
'컴퓨터 언어 > Python_NumPy' 카테고리의 다른 글
[ Numpy ] 배열 복사, 붙여넣기 함수! (np.repeat, np.tile) (0) | 2022.04.11 |
---|---|
[ Numpy ] 대각 행렬 관련 함수! (np.eye, np.identity, np.diag) (0) | 2022.04.11 |
[ Numpy ] np.swapaxes, np.transpose (축을 기준으로 원소 배열은 어떻게 바뀌는가?) (0) | 2020.03.14 |
[ Python 3 ] Numpy 란 무엇인가? (ndarray 클래스) (0) | 2020.03.14 |
[ Python 3 ] Numpy reshape 함수란. (추가, 다른 형태의 자료를 np.array 활용하여 reshape 이용 가능) (1) | 2020.03.13 |