>백엔드 개발 >파이썬 튜토리얼 >데이터 유형을 유지하면서 NumPy 배열을 다른 데이터 유형과 결합하는 방법은 무엇입니까?

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

Susan Sarandon
Susan Sarandon원래의
2024-10-21 17:59:18620검색

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

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

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

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

레코드 배열

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

<code class="python">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)</code>

출력:

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

구조적 배열

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

<code class="python">arr = np.array([('a', 0), ('b', 1)], 
                      dtype=([('keys', '|S1'), ('data', 'i8')]))

print(arr)</code>

출력:

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

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

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

위 내용은 데이터 유형을 유지하면서 NumPy 배열을 다른 데이터 유형과 결합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.