>백엔드 개발 >파이썬 튜토리얼 >NumPy Element-Wise 작업에서 'ValueError: 피연산자를 함께 브로드캐스트할 수 없습니다.' 오류가 발생하는 이유는 무엇입니까?

NumPy Element-Wise 작업에서 'ValueError: 피연산자를 함께 브로드캐스트할 수 없습니다.' 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-08 20:29:15591검색

Why Do I Get a

NumPy 요소별 연산의 브로드캐스트 문제

다양한 모양의 NumPy 배열과 함께 요소별 연산을 사용할 때 다음과 같은 문제가 발생할 수 있습니다. 오류 "ValueError: 피연산자를 모양과 함께 브로드캐스트할 수 없습니다." 이 오류는 해당 작업에 대해 배열의 크기가 호환되지 않음을 나타냅니다.

NumPy Element-Wise 작업의 브로드캐스팅

브로드캐스팅을 통해 하나 또는 두 개의 어레이를 확장할 수 있습니다. 요소별 작업과 호환되도록 크기를 조정합니다. 값이 1이거나 누락된 차원을 브로드캐스트에 사용할 수 있으며, 다양한 모양의 배열을 요소별로 곱할 수 있습니다.

예제 오류

다음 코드를 고려하세요. X는 (m,n) 모양의 배열이고 y는 모양의 배열입니다. (n,1):

X * y

이 코드는 차원이 호환되지 않기 때문에 ValueError를 발생시킵니다.

(97,2) x (2,1)

행렬 곱셈과 요소별 곱셈

NumPy에서 별표(*) 연산자는 요소별 곱셈에 사용되는 반면, dot() 함수는 행렬 곱셈에 사용됩니다. 행렬 곱셈에는 호환 가능한 차원이 필요한 반면, 요소별 곱셈에는 함께 브로드캐스트할 수 있는 차원이 필요합니다.

해결책

오류를 해결하려면 dot() 행렬 곱셈을 수행하는 함수:

X.dot(y)

또는 행렬 곱셈을 수행하기 전에 배열의 모양을 수정할 수도 있습니다. 브로드캐스트 가능하도록 요소별 작업을 수행합니다.

추가 참고 사항

  • 두 배열이 모두 numpy.matrix 유형인 경우 별표 연산자를 사용할 수 있습니다. 행렬 곱셈.
  • 호환되지 않는 모양의 배열에 dot()를 사용하면 "ValueError: 행렬이 정렬되지 않았습니다."
  • 브로드캐스팅 규칙에 대한 포괄적인 설명은 NumPy 설명서를 참조하세요.

위 내용은 NumPy Element-Wise 작업에서 'ValueError: 피연산자를 함께 브로드캐스트할 수 없습니다.' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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