Numpy数组减法创建具有不同维数的矩阵。怎么纠正呢?

2024-06-03 15:58:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Python创建一个简单的神经元网络(我知道有库,但我正在从头开始构建一个简单的,以便更熟悉所采取的每一步),其中一部分是计算真实标签和预测标签之间的差异。在

“真实”标签的尺寸为“2059 x 1”>;,预测的标签也在“2059 x 1”>

两者都在np.数组在

我希望一个简单的

l2_error=tag_train-l2

会完成任务的。(l2为预测标签,tag_train为真实标签)

但我得到的回报是一个2059x2059的矩阵。似乎这个操作是对所有可能的元素组合进行减法。为什么会这样?我知道我可以运行一个for循环来完成这项工作,因为我想知道为什么程序会产生这个结果?在

两个数据类型都是float64,顺便说一句。我不认为这有什么关系,但只是为了以防万一需要这些信息。在


Tags: gt元素for尺寸tagnptrain矩阵
1条回答
网友
1楼 · 发布于 2024-06-03 15:58:53

正如您在注释中所指出的那样,tag_train是一个长度为2059的一维数组,而{}应该是一个包含2059行和1列的二维数组。在

所以当你尝试做减法时,它会得到一个包含2059行和2059列的二维数组。在

如果您100%确定l2只会是一列,那么您可以在执行减法之前重塑该数组,使其成为一维数组。就像-

l2.reshape((l2.shape[0],))

示例/演示-

^{pr2}$

相关问题 更多 >