gpt4 book ai didi

python - Numpy 数组减法创建一个具有不同维度的矩阵。如何纠正?

转载 作者:行者123 更新时间:2023-11-30 09:12:14 26 4
gpt4 key购买 nike

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

我的真实标签位于暗淡的 <2059 x 1> 中,预测标签也在 <2059 x 1> 中

两者都在 np.array 中

我希望有一个简单的

l2_error=tag_train-l2

可以完成这项工作。 (l2是预测标签,tag_train是真实标签)

但我得到的返回是一个 <2059x2059> 矩阵。看起来这个操作正在对所有可能的元素组合进行减法。为什么会出现这种情况呢?我知道我可能可以运行 for 循环来完成工作,因为我想知道为什么程序会产生这个结果?

顺便说一句,两种数据类型都是 float64。我认为这并不重要,但以防万一需要此信息。

最佳答案

正如您在评论中指出的那样,发生的情况是 tag_train 是一个长度为 2059 的一维数组,而 l2 应该是一个具有 2059 行的二维数组和 1 列。

因此,当您尝试进行减法时,会得到一个包含 2059 行和 2059 列的二维数组。

如果您 100% 确定 l2 只是一列,那么您可以在进行减法之前 reshape 该数组,使其成为一维。喜欢-

l2.reshape((l2.shape[0],))
<小时/>

示例/演示 -

In [1]: import numpy as np

In [2]: l1 = np.array([1,2,3,4])

In [3]: l2 = np.array([[5],[6],[7],[8]])

In [7]: l2.shape
Out[7]: (4, 1)

In [8]: l2-l1
Out[8]:
array([[4, 3, 2, 1], #Just to show that you get the behaviour when arrays are in
[5, 4, 3, 2], #different dimensions.
[6, 5, 4, 3],
[7, 6, 5, 4]])

In [19]: l2 = l2.reshape((l2.shape[0],))

In [25]: l2 = l2.reshape((l2.shape[0],))

In [26]: l2-l1
Out[26]: array([4, 4, 4, 4])

关于python - Numpy 数组减法创建一个具有不同维度的矩阵。如何纠正?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com