0

我正在计算矩阵内散点图,其中我有一个 50x20 向量,而我发生的事情是将转置向量乘以原始向量,给我一个维度错误,如下所示:

操作数不能与形状一起广播 (50,20) (20,50)

我尝试的是:array = my_array * my_array_transposed并得到上述错误。

替代方案是这样做:

new_array = np.dot(my_array,  np.transpose(my_array))

例如,在 Octave 中,这会容易得多,但由于向量的大小,如果这是进行以下计算的方法,我很难确认基本事实:

在此处输入图像描述

因为据我所知,乘法是否是元素明智的。

我的问题是,我是否以正确的方式应用该公式?如果不是,将转置向量乘以非转置向量的正确方法是什么?

4

1 回答 1

1

是的,np.dot公式是正确的。如果你写array = my_array * my_array_transposed,你是在要求 Python 执行组件乘法。相反,您需要在 numpy with 中实现的逐列乘法np.dot

于 2020-06-26T09:33:03.317 回答