जोश एडेल का समाधान आयाम जोड़ने के लिए 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से बदलने की आवश्यकता है, तो यह आपको मिलेगा ।1x33x1
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]])