NumPyλ νμ΄μ¬μμ κ³Όν κ³μ°μ μν΄ λ리 μ¬μ©λλ λΌμ΄λΈλ¬λ¦¬μ΄λ€. κ·Έλ¬λ κ°λ NumPyλ₯Ό μ¬μ©ν λ ValueError: operands could not be broadcast together μ€λ₯λ₯Ό λ§μ£Όν μ μλ€. μ΄ ν¬μ€νΈμμλ μ΄ μ€λ₯κ° λ°μνλ μμΈκ³Ό μ΄λ₯Ό ν΄κ²°νλ λ°©λ²μ λν΄ μμλ³Ό μμ μ΄λ€.
μ€λ₯μ μμΈ
NumPy λ°°μ΄ μ°μ°μμ ValueError: operands could not be broadcast together μ€λ₯λ λ λ°°μ΄μ νν(shape)κ° μΌμΉνμ§ μμ λ λ°μνλ€. NumPyλ μλμΌλ‘ λ°°μ΄μ μΌμΉμν€λ €κ³ μλ(μ΄λ₯Ό “λΈλ‘λμΊμ€ν ”μ΄λΌκ³ λΆλ₯΄λ©°)νμ§λ§, λΈλ‘λμΊμ€ν κ·μΉμ λ§μ§ μλ κ²½μ° μ€λ₯κ° λ°μνλ€.
μμ μ½λμ λ¬Έμ λ°μ
λ€μμ μ΄ μ€λ₯κ° λ°μν μ μλ μμ μ½λμ΄λ€:
import numpy as np array1 = np.array([[1, 2, 3], [4, 5, 6]]) array2 = np.array([1, 2]) result = array1 + array2
μμ μ½λμμ array1μ (2, 3)μ ννλ₯Ό κ°μ§κ³ μκ³ , array2λ (2,)μ ννλ₯Ό κ°μ§κ³ μλ€. λ λ°°μ΄μ ννκ° λ€λ₯΄κΈ° λλ¬Έμ λνκΈ° μ°μ°μ μνν μ μμ΄μ μλμ κ°μ΄ μ€λ₯κ° λ°μνκ² λλ€.
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[6], line 6 3 array1 = np.array([[1, 2, 3], [4, 5, 6]]) 4 array2 = np.array([1, 2]) ----> 6 result = array1 + array2 7 result ValueError: operands could not be broadcast together with shapes (2,3) (2,)
ν΄κ²° λ°©λ²
λ°°μ΄μ ννλ₯Ό λ§μΆκΈ°
λ λ°°μ΄μ ννλ₯Ό μΌμΉμν€κΈ° μν΄ λ°°μ΄μ μ¬κ΅¬μ‘°ννκ±°λ νμ₯νλ€.
import numpy as np array1 = np.array([[1, 2, 3], [4, 5, 6]]) array2 = np.array([1, 2]) array2 = np.array([[1], [2]]) # array2λ₯Ό (2, 1)μΌλ‘ λ³κ²½ result = array1 + array2 print(result)
λΈλ‘λμΊμ€ν μ μ΄μ©νκΈ°
λ°°μ΄μ μΆμ μΆκ°νμ¬ λΈλ‘λμΊμ€ν μ΄ κ°λ₯νλλ‘ νλ€.
import numpy as np array1 = np.array([[1, 2, 3], [4, 5, 6]]) array2 = np.array([1, 2]) array2 = array2[:, np.newaxis] # array2λ₯Ό (2, 1)μΌλ‘ νμ₯ result = array1 + array2 print(result)
μ λ μ½λμμ array2λ₯Ό (2, 1) ννλ‘ λ³νν¨μΌλ‘μ¨ array1κ³Όμ ννκ° μΌμΉνκ² λμ΄ μ°μ°μ΄ μ±κ³΅μ μΌλ‘ μνλλ€.
μΆκ° μμ : λΈλ‘λμΊμ€ν κ·μΉ μ΄ν΄νκΈ°
λΈλ‘λμΊμ€ν κ·μΉμ λ μ μ΄ν΄νκΈ° μν΄ λ λ€λ₯Έ μμ λ₯Ό μ΄ν΄λ³΄λλ‘ νμ.
import numpy as np array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) array2 = np.array([10, 20, 30]) result = array1 + array2 print(result)
μμ μ½λμμ array1μ (3, 3)μ ννλ₯Ό κ°μ§κ³ μκ³ , array2λ (3,)μ ννλ₯Ό κ°μ§κ³ μλ€. NumPyλ array2μ ννλ₯Ό μλμΌλ‘ (1, 3)μΌλ‘ νμ₯νμ¬ array1κ³Όμ λνκΈ° μ°μ°μ μννλ€.
# result [[11 22 33] [14 25 36] [17 28 39]]
λΈλ‘λμΊμ€ν κ·μΉ
λΈλ‘λμΊμ€ν μ΄ μ±κ³΅νκΈ° μν΄μλ λ€μ κ·μΉμ΄ μ μ©λμ΄μΌ νλ€:
- λ°°μ΄μ κ° μΆμ΄ λμΌν ν¬κΈ°λ₯Ό κ°μ§κ±°λ, νλμ λ°°μ΄μ ν¬κΈ°κ° 1μ΄μ΄μΌ νλ€.
- λ°°μ΄μ μ°¨μμ΄ λ€λ₯΄λ©΄, μμ λ°°μ΄μ μμͺ½μ ν¬κΈ°κ° 1μΈ μΆμ΄ μΆκ°λλ€.
μ κ·μΉμ ν΅ν΄ λ λ°°μ΄μ ννκ° μΌμΉλλ©΄, NumPyλ μλμΌλ‘ λΈλ‘λμΊμ€ν μ μννμ¬ μ°μ°μ μ§νν μ μλ€.
κ²°λ‘
ValueError: operands could not be broadcast together μ€λ₯λ λ°°μ΄μ ννκ° μΌμΉνμ§ μμ λ λ°μνλ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄μλ λ°°μ΄μ ννλ₯Ό λ§μΆκ±°λ, λΈλ‘λμΊμ€ν κ·μΉμ λ°λΌ λ°°μ΄μ μ¬κ΅¬μ±ν΄μΌ νλ€. NumPyμ λΈλ‘λμΊμ€ν μ μ΄ν΄νκ³ νμ©νλ©΄, λκ·λͺ¨ λ°μ΄ν° μ°μ°μ ν¨μ¨μ μΌλ‘ μ²λ¦¬ν μ μλ€.