gpt4 book ai didi

Python numpy 更简单的语法?

转载 作者:太空狗 更新时间:2023-10-30 02:20:15 26 4
gpt4 key购买 nike

我是 numpy 的新手,我已经有点厌倦了它的语法。

可以在 Octave/matlab 中这样写的东西

1/(2*m) * (X * theta - y)' * (X*theta -y)

在numpy中变成这样

np.true_divide(((X.dot(theta)-y).transpose()).dot((X.dot(theta)-y)),2*m)

这对我来说更难编写和调试。有没有更好的方法来编写上面的矩阵运算以使生活更轻松?

最佳答案

你可以做一些简化。通过在程序开头使用 from __future__ import division,所有除法将自动成为“真”除法,因此您无需使用 true_divide。 (在 Python 3 中,您甚至不需要这样做,因为真正的除法自动成为默认值。)另外,您可以使用 .T 而不是 .transpose() .然后你的代码就变成了

1/(2*m) * ((X.dot(theta) - y).T).dot((X.dot(theta) - y))

哪个好一点。

在 Python 3.5 中,添加了一个新的矩阵乘法运算符 @ 基本上就是出于这个原因。这还没有出来,但是当它出来时(当 numpy 被更新以使用它时),你的代码将变得非常类似于 Octave 版本:

1/(2*m) * (X@theta - y).T @ (X@theta - y)

关于Python numpy 更简单的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24560860/

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