numpy的5种乘法:
:矩阵中的数据连乘(np.prod)
:逐元素相乘(*)
:矩阵乘(dot)
:叉乘(np.cross)
:外乘(np.outer)
代码:
###################
l1 = [[1, 2, 3], [4, 5, 6]]
l2 = np.array(l1)
for i in range(len(l1)):
l3 = [np.prod(l2[i])]
print(l3)
#################
a = mat([[1, 2, 3], [4, 5, 6]])
b = mat([[2, 2, 3], [2, 4, 1]])
c = np.array(a)*np.array(b)
c = mat(c)
print(c)
######################
d = np.dot(a, np.transpose(b))
print(d)
###############################
e = np.array([1, 0, 0])
f = np.array([0, 1, 0])
g = np.cross(e, f) # x轴叉乘y轴,得到z轴
print(g)
i = np.array([2, 0])
g = np.array([0, 2])
k = np.cross(i, g)
print(k)
#####################
l = np.array([1, 2, 3])
m = np.array([5, 6, 7, 8])
n = np.outer(l, m)
print(n)
结果:
[6]
[120]
[[ 2 4 9]
[ 8 20 6]]
[[15 13]
[36 34]]
[0 0 1]
4
[[ 5 6 7 8]
[10 12 14 16]
[15 18 21 24]]
补充:关于numpy.prod()
可传参数:numpy.prod(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>
)
示例:
–使用整数类型时,算术是模块化的,溢出时不会出现错误。
>>>x = np.array([536870910, 536870910, 536870910, 536870910])
>>>np.prod(x)
16 # may vary
–空数组乘积为1
>>>np.prod([])
1.0
–对于二维数据
>>>np.prod([[1.,2.],[3.,4.]])
24.0
–指定相应维度
>>>np.prod([[1.,2.],[3.,4.]], axis=1)
array([ 2., 12.])
–指定相应元素
>>>np.prod([1., np.nan, 3.], where=[True, False, True])
3.0
–设定初始值
>>>np.prod([1., np.nan, 3.], where=[True, False, True])
3.0