2011-04-26 18 views
5

0 द्वारा स्केलर्स की संख्यात्मक संख्या को गुणा करें, मेरे पास वैक्टरों की एक संख्यात्मक सरणी है जिसे मुझे स्केलरों की एक सरणी से गुणा करने की आवश्यकता है। उदाहरण के लिए:वेक्टर

>>> import numpy 
>>> x = numpy.array([0.1, 0.2]) 
>>> y = numpy.array([[1.1,2.2,3.3],[4.4,5.5,6.6]]) 

मैं इस तरह अलग-अलग तत्वों गुणा कर सकते हैं:

>>> x[0]*y[0] 
array([ 0.11, 0.22, 0.33]) 

लेकिन जब मैं कोशिश करते हैं और एक दूसरे से पूरी सरणियों गुणा, मैं:

>>> x*y 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: shape mismatch: objects cannot be broadcast to a single shape 

मुझे लगता है कि इसे प्रसारण नियमों के साथ करना है। इन दो सरणी तत्वों के साथ numpy के साथ गुणा करने का सबसे तेज़ तरीका क्या है?

उत्तर

10
I[1]: x = np.array([0.1, 0.2]) 

I[2]: y = np.array([[1.1,2.2,3.3],[4.4,5.5,6.6]]) 


I[3]: y*x[:,np.newaxis] 
O[3]: 
array([[ 0.11, 0.22, 0.33], 
     [ 0.88, 1.1 , 1.32]]) 
+0

बिल्कुल सही, धन्यवाद! – jterrace