जोश एडेल का समाधान आयाम जोड़ने के लिए np.newaxis का उपयोग करता है। प्रसारण के लिए तैयारी में आयामों को संरेखित करने के लिए एक विकल्प reshape () का उपयोग करना है ।
data = np.array([[1,1,1],[2,2,2],[3,3,3]])
vector = np.array([1,2,3])
data
# array([[1, 1, 1],
# [2, 2, 2],
# [3, 3, 3]])
vector
# array([1, 2, 3])
data.shape
# (3, 3)
vector.shape
# (3,)
data / vector.reshape((3,1))
# array([[1, 1, 1],
# [1, 1, 1],
# [1, 1, 1]])
प्रदर्शन () प्रसारण के लिए लाइन अप करने के लिए आयाम की अनुमति देता है:
data: 3 x 3
vector: 3
vector reshaped: 3 x 1
ध्यान दें कि data/vector
यह ठीक है, लेकिन यह आपको वह उत्तर नहीं मिलता जो आप चाहते हैं। यह प्रत्येक तत्व के प्रत्येक कॉलम को array
(प्रत्येक पंक्ति के बजाय ) विभाजित करता है vector
। यदि आपको इसके बदले स्पष्ट रूप vector
से बदलने की आवश्यकता है, तो यह आपको मिलेगा ।1x3
3x1
data / vector
# array([[1, 0, 0],
# [2, 1, 0],
# [3, 1, 1]])
data / vector.reshape((1,3))
# array([[1, 0, 0],
# [2, 1, 0],
# [3, 1, 1]])