第一次在csdn写东西,好激动。
看到了multiply,本人一般都不读用户手册,都是自己试几个,基本上就够用了。
(欢迎转载,标明出处,欢迎交流)
————————————————-割——————————————-
函数有两个参数。如果有一个参数是常数,那就是多另一个向量的每个元素广播。我们讨论“向量*向量”问题。
这个函数的“向量*向量”不是线性代数里的向量乘法。
函数内部判断维度。如果是一参二参都是一维,那就把一二参的各元素相乘,out一个多个乘积为元素的list(如果一二参的元素数量不同也error);如果一参是二维,二参是一维,则将一参的每行和二参做对应项乘积,out一个与一参同结构的二维list。
————————————————实例——————————————–
写前面已经“from numpy import multiply”了。
In [22]: multiply(2,3)
Out[22]: 6
In [23]: multiply([2,5],3)
Out[23]: array([ 6, 15])
In [24]: multiply(2,[3,5])
Out[24]: array([ 6, 10])
In [15]: multiply([1,2],[7,8])
Out[15]: array([ 7, 16])
In [16]: multiply([[1,2],[3,4]],[7,8])
Out[16]:
array([[ 7, 16],
[21, 32]])
In [17]: multiply([[1,2],[3,5]],[7,9])
Out[17]:
array([[ 7, 18],
[21, 45]])
In [18]: multiply([[1,2],[3,5]],[7,11])
Out[18]:
array([[ 7, 22],
[21, 55]])
In [19]: multiply([1,2,3],[7,8])
================================
ValueError Traceback (most recent call last)
in ()
—-> 1 multiply([1,2,3],[7,8])
ValueError: operands could not be broadcast together with shapes (3,) (2,)
In [20]: multiply([[1,2],[3,5],[55,77]],[7,11])
Out[20]:
array([[ 7, 22],
[ 21, 55],
[385, 847]])
In [21]: multiply([[1,2],[3,5],[55,77]],[[7,11],[1,1]])
ValueError Traceback (most recent call last)
in ()
—-> 1 multiply([[1,2],[3,5],[55,77]],[[7,11],[1,1]])
ValueError: operands could not be broadcast together with shapes (3,2) (2,2)