Py学习  »  Python

如何在Python中正确地减去矩阵?

apotamkinn • 3 年前 • 1436 次点击  

我一直在尝试减去两个矩阵(不确定它们是否真的是矩阵,因为其中一个是熊猫系列),但结果不是真的。我添加了代码和输出,如何获得正确的200X1形状结果?

*X为200x4,w为4x1

Code

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128076
 
1436 次点击  
文章 [ 2 ]  |  最新文章 3 年前
Corralien
Reply   •   1 楼
Corralien    3 年前

也许这会有帮助:

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
Sagi
Reply   •   2 楼
Sagi    3 年前

你可以重塑 y_hat :

y - y_hat.reshape(-1,1)

你得到的原因 (200,200) 是因为numpy广播公司 你的帽子 as(1200),所以为了使形状匹配,numpy广播 y 进入 (200,200) 你的帽子 进入 (200,200) 然后进行减法运算。