Python 的风格最佳实践是否适用于科学编码?
我发现很难保持科学 Python 代码的可读性。
例如,建议对变量使用有意义的名称,并通过避免import *
. 因此,例如:
import numpy as np
normbar = np.random.normal(mean, std, np.shape(foo))
但是这些建议可能会导致一些难以阅读的代码,尤其是考虑到 79 个字符的行宽。比如我刚才写了下面的操作:
net["weights"][ix1][ix2] += lrate * (CD / nCases - opts["weightcost_pretrain"].dot(net["weights"][ix1][ix2]))
我可以跨行跨越表达式:
net["weights"][ix1][ix2] += lrate * (CD / nCases -
opts["weightcost_pretrain"].dot(net["weights"][ix1][ix2]))
但这似乎并没有好多少,我不确定第二行缩进多深。当双缩进到嵌套循环中时,这些类型的行继续变得更加棘手,并且一行上只有 50 个字符可用。
我应该接受科学 Python 看起来很笨重,还是有办法避免像上面的例子那样出现线条?
一些潜在的方法是:
- 使用较短的变量名
- 使用较短的字典键名
- 直接导入 numpy 函数并为其分配短名称
- 为算术运算的组合定义辅助函数
- 将操作分解成更小的部分,并在每一行放置一个
我将不胜感激任何关于追求和避免哪些方面的智慧,以及对其他补救措施的建议。