Appia의 IT세상

파이썬[Python] 053 기존 데이터를 이용한 Ndarray생성(asarray, fromiter) - Numpy006 본문

Python/Python Numpy

파이썬[Python] 053 기존 데이터를 이용한 Ndarray생성(asarray, fromiter) - Numpy006

Appia 2020. 3. 1. 08:53
반응형

이번 포스팅은 기존에 있는 데이터 , 리스트 다양한 데이터들을 이용하여 Ndarray 만드는 방법에 대해서 살펴보고자 합니다. 최근 남이 하던 업무를 갑자기 이어서 하는 경우가 생겼습니다. 그래서, C에서 파일 쓰기를 통해서 생성된 바이너리를 읽어와서 변조하는 부분을 생성하게 되었습니다. 구조를 보니, 파일을 읽어와서 리스트로 저장하고 리스트를 바탕으로 Ndarray 생성하는 것을 알게 되었습니다. 그래서 부분들에 대해서 조금 첨가하여 포스팅을 진행하고자 합니다.

 

numpy.asarray

먼저 가장 흔히 사용하는 방법은 다음과 같습니다.

 

Numpy.asarray(Data, dtype = None, order = None)

 

Data - 입력 데이터 입니다. 여기에는 튜플, 리스트등이 됩니다.

dtype - 데이터 타입입니다.

order - C (Row 중심, 기본설정) , F( Column 중심)

 

그럼 다음 예제를 살펴보겠습니다.

1
2
3
4
5
import numpy
 
= [1,2,3]
= numpy.asarray(x, dtype = float)
print(a)
cs

 

위의 예제를 실행하면 다음과 같은 결과가 나옵니다. 

1
[1. 2. 3.]
cs

 

그럼 이번에는 튜스로 구성된 리스트에 대해서 작업을 진행해 보겠습니다. 

1
2
3
4
5
import numpy
 
= [(1,2,3),(4,5)] 
= numpy.asarray(x) 
print(a)
cs

 

그럼 다음과 같은 결과가 나옵니다. 

1
[(123) (45)]
cs

 

저의 경우 그냥 asarray대신 그냥 array로 생성해 버리기도 합니다. 물론, 크게 차이는 없어서 편하신것 사용하셔도 됩니다. 

 

numpy.fromiter

다음의 순환할 수 있는 구조를 가지는 데이터의 기반으로 1차원 배열을 생성해주는 함수입니다. 

 

numpy.fromiter(iterableData, dtype, count = -1)

 

iterableData - 순환할 수 있는 객체를 의미합니다. 

dtype - 데이터 타입입니다. 

count - 순환할 수 있는 객체에서 읽어올 맴버의 갯수를 의미합니다. -1을 전체 데이터를 의미합니다. 

 

그럼 다음 예제를 살펴보겠습니다. 

1
2
3
4
import numpy
list = range(5)
= numpy.fromiter(list, dtype = float)
print(x)
cs

 

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. 

1
[0. 1. 2. 3. 4.]
cs

 

오늘은 numpy에서 asarray와 fromiter를 이용하여 기존의 있는 데이터를 바탕으로 배열을 생성하는 방법에 대해서 살펴봤습니다. 물론 frombuffer라는 함수도 있지만, 이 부분은 바이너리에 관련된 부분을 이야기 할때 다르기 위해서 킵해두두겠습니다. 혹 궁금하시거나 문의 사항 있으시면 언제든지 문의 부탁드립니다. 

반응형
Comments