在机器学习中遇到的一点有关python的小问题
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([1,2,3])
print a*b
print a+b
print b*a
print b+a
c=np.dot(a, b)
print c
print np.shape(c)
d = np.dot(b, a)
print d
print np.shape(d)# [[ 2 4 6]
# [ 5 7 9]
# [ 8 10 12]]
# [[ 1 4 9]
# [ 4 10 18]
# [ 7 16 27]]
# [[ 2 4 6]
# [ 5 7 9]
# [ 8 10 12]]
# [14 32 50]
# (3,)
# [30 36 42]
# (3,)# 由此可见,b为行向量还是列向量时,是看具体用的时候在矩阵左边还是右边,会自动变换
# numpy.dot()是矩阵乘法
# 而有关‘*’,‘+’
# 如果两个数组大小一样,按照对应元素相乘或相加
# 如果像a*b,或a+b,则a中的每一列的每个数与b中的每一列的每个数都相乘,即扩大a中每一列的倍数(相加时也是一样)
# b*a ,这个结果与a*b是一样的

本文记录了在机器学习实践中遇到的numpy数组乘法问题,详细探讨了在Python中如何进行numpy数组的乘法规则和相关操作。
1108

被折叠的 条评论
为什么被折叠?



