如何正确地减去 Python 中的矩阵?
How to subtract matrices in Python properly?
我一直在尝试减去两个矩阵(不确定它们是否真的是矩阵,因为其中一个是 pandas 系列)但结果不正确。我添加了代码和输出,如何才能得到正确的 200X1 形状结果?
*X 为 200x4 w 为 4x1
也许它可以帮助:
rng = np.random.default_rng(2022)
df = pd.DataFrame(rng.integers(0, 10, (5, 4)))
sr = pd.Series(rng.integers(0, 10, (5, )))
>>> df
0 1 2 3
0 7 2 7 0
1 1 6 9 0
2 0 6 8 7
3 8 1 5 0
4 0 4 8 9
>>> sr
0 3
1 9
2 0
3 2
4 6
dtype: int64
>>> df - sr # does not work
0 1 2 3 4
0 4 -7 7 -2 NaN
1 -2 -3 9 -2 NaN
2 -3 -3 8 5 NaN
3 5 -8 5 -2 NaN
4 -3 -5 8 7 NaN
>>> df.sub(sr, axis=0) # work
0 1 2 3
0 4 -1 4 -3
1 -8 -3 0 -9
2 0 6 8 7
3 6 -1 3 -2
4 -6 -2 2 3
你可以重塑 y_hat
:
y - y_hat.reshape(-1,1)
你得到 (200,200)
的原因是因为 numpy 广播,它将 y_hat
视为 (1,200),所以为了匹配形状,numpy 将 y
广播到 (200,200)
和 y_hat
变成 (200,200)
然后做减法。
我一直在尝试减去两个矩阵(不确定它们是否真的是矩阵,因为其中一个是 pandas 系列)但结果不正确。我添加了代码和输出,如何才能得到正确的 200X1 形状结果?
*X 为 200x4 w 为 4x1
也许它可以帮助:
rng = np.random.default_rng(2022)
df = pd.DataFrame(rng.integers(0, 10, (5, 4)))
sr = pd.Series(rng.integers(0, 10, (5, )))
>>> df
0 1 2 3
0 7 2 7 0
1 1 6 9 0
2 0 6 8 7
3 8 1 5 0
4 0 4 8 9
>>> sr
0 3
1 9
2 0
3 2
4 6
dtype: int64
>>> df - sr # does not work
0 1 2 3 4
0 4 -7 7 -2 NaN
1 -2 -3 9 -2 NaN
2 -3 -3 8 5 NaN
3 5 -8 5 -2 NaN
4 -3 -5 8 7 NaN
>>> df.sub(sr, axis=0) # work
0 1 2 3
0 4 -1 4 -3
1 -8 -3 0 -9
2 0 6 8 7
3 6 -1 3 -2
4 -6 -2 2 3
你可以重塑 y_hat
:
y - y_hat.reshape(-1,1)
你得到 (200,200)
的原因是因为 numpy 广播,它将 y_hat
视为 (1,200),所以为了匹配形状,numpy 将 y
广播到 (200,200)
和 y_hat
变成 (200,200)
然后做减法。