"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 데이터 유형을 유지하면서 NumPy 배열을 다른 데이터 유형과 결합하는 방법은 무엇입니까?

데이터 유형을 유지하면서 NumPy 배열을 다른 데이터 유형과 결합하는 방법은 무엇입니까?

2024-11-07에 게시됨
검색:583

How to Combine NumPy Arrays with Different Datatypes While Preserving Data Types?

NumPy에서 여러 데이터 유형이 있는 배열 결합

다양한 데이터 유형이 포함된 배열을 각 열에 해당 데이터 유형이 있는 단일 배열로 연결하려는 욕구 도전. np.concatenate()를 사용하는 일반적인 접근 방식은 불행하게도 전체 배열을 문자열 데이터 유형으로 변환하여 메모리 비효율성을 초래합니다.

이러한 한계를 극복하기 위해 실행 가능한 솔루션에는 레코드 배열 또는 구조화된 배열을 사용하는 것이 포함됩니다.

레코드 배열

레코드 배열을 사용하면 속성을 통해 개별 데이터 필드에 액세스할 수 있습니다. 각 필드의 데이터 유형을 지정하면 여러 데이터 유형을 단일 배열로 결합할 수 있습니다.

import numpy as np

a = np.array(['a', 'b', 'c', 'd', 'e'])
b = np.arange(5)
records = np.rec.fromarrays((a, b), names=('keys', 'data'))

print(records)

출력:

rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])

구조적 배열

구조적 배열은 다음과 같습니다. 마찬가지로 각 열의 데이터 유형을 정의하는 기능을 제공합니다. 그러나 레코드 배열과 같은 속성 액세스는 지원하지 않습니다:

arr = np.array([('a', 0), ('b', 1)], 
                      dtype=([('keys', '|S1'), ('data', 'i8')]))

print(arr)

출력:

array([('a', 0), ('b', 1)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])

레코드 배열과 구조적 배열 중에서 선택

레코드 배열과 구조적 배열 사이의 선택은 개별 사용 사례에 따라 다릅니다. 레코드 배열은 속성 액세스에 편리함을 제공하는 반면, 구조화된 배열은 보다 복잡한 데이터 구조에 선호될 수 있습니다. 두 접근 방식 모두 NumPy에서 배열을 다양한 데이터 유형과 결합하는 편리한 방법을 제공하여 데이터 조작에 유연성과 효율성을 제공합니다.

릴리스 선언문 이 글은 1729504697에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3