>  기사  >  백엔드 개발  >  NumPy에서 인덱스 배열을 원-핫 인코딩된 배열로 변환하는 방법은 무엇입니까?

NumPy에서 인덱스 배열을 원-핫 인코딩된 배열로 변환하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-01 00:09:28521검색

How to Convert an Array of Indices to a One-Hot Encoded Array in NumPy?

NumPy에서 인덱스 배열을 원-핫 인코딩된 배열로 변환

종종 인덱스의 1D 배열을 변환해야 하는 경우가 있습니다. 각 행이 원본의 해당 인덱스에 대한 원-핫 인코딩을 나타내는 2D 배열로 배열.

예:

인덱스 'a'로 구성된 1차원 배열을 만들어 보겠습니다.

<code class="python">a = np.array([1, 0, 3])</code>

우리는 2차원 배열 '을 만드는 것을 목표로 합니다. b' 여기서 각 행은 해당 인덱스의 원-핫 인코딩입니다. 'a':

<code class="python">b = np.array([[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1]])</code>

해결책:

이 변환을 달성하려면 다음 단계를 활용할 수 있습니다.

  1. 제로화된 배열 생성:
    수용할 수 있는 충분한 열이 있는 제로화된 배열 'b'를 만듭니다. 'a'의 최대 인덱스 값에 1을 더한 것('a.max() 1').
<code class="python">b = np.zeros((a.size, a.max() + 1))</code>
  1. 원-핫 인코딩:
    배열의 각 행 'i'에 대해 'a[i]'번째 열을 1로 설정합니다. 이 단계는 'a'의 각 인덱스를 원-핫 인코딩된 인덱스로 변환합니다. 행의 'b'.
<code class="python">b[np.arange(a.size), a] = 1</code>

출력:

이 코드를 실행하면 원하는 원-핫 인코딩 배열 'b'가 생성됩니다.

<code class="python">[[ 0.  1.  0.  0.]
 [ 1.  0.  0.  0.]
 [ 0.  0.  0.  1.]]</code>

위 내용은 NumPy에서 인덱스 배열을 원-핫 인코딩된 배열로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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