编写函数 dot_product(M, N(,该函数将两个矩阵 M 和 N 作为参数,并返回包含这些矩阵的点积的新矩阵。
我理解逻辑,但不确定如何乘以每一行和每一列,这就是我到目前为止所拥有的
def dot_product(M, N):
""" takes as parameters two matrices M and N, and returns a new matrix
containing dot product of these matrices
"""
assert( len(M[0]) == len(N)), " innter length differnet "
new_matrix = zeros(len(M[0]) , len(N))
transP = transpose(N)
storing_values = []
for r in range(len(M)):
for c in range(len(M[0])):
storing_values += M[r][c] * transP[r][c]
我正在使用辅助函数转置来旋转矩阵 N,因此当我迭代时,我正在查看两个矩阵的相同列和行。
输出应如下所示: [[26.00, 4.00] [62.00, 13.00]]
使用 numpy 内置的点积函数看起来很简单: https://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html
应该是大意如下的东西:
import numpy as np
def dot_product(M, N):
return np.dot(np.asarray(M), np.asarray(N))
一般来说,python 中的许多功能已经在像 numpy 这样的包中实现,我尽量不重新发明轮子。不确定这在您的情况下是否可以接受,因为这似乎是一个家庭作业问题,但这是获得两个矩阵的点积的最简单方法。