小编cjh*_*cjh的帖子

科学Python代码的可读性(线路连续,变量名称,导入)

Python的风格最佳实践是否适用于科学编码?

我发现很难保持科学Python代码的可读性.

例如,建议对变量使用有意义的名称,并通过避免来保持命名空间import *.因此,例如:

    import numpy as np
    normbar = np.random.normal(mean, std, np.shape(foo))
Run Code Online (Sandbox Code Playgroud)

但是这些建议可能导致一些难以阅读的代码,特别是考虑到79个字符的线宽.例如,我刚写了以下操作:

net["weights"][ix1][ix2] += lrate * (CD / nCases - opts["weightcost_pretrain"].dot(net["weights"][ix1][ix2]))
Run Code Online (Sandbox Code Playgroud)

我可以跨越线条表达:

net["weights"][ix1][ix2] += lrate * (CD / nCases - 
     opts["weightcost_pretrain"].dot(net["weights"][ix1][ix2]))
Run Code Online (Sandbox Code Playgroud)

但这似乎没有那么好,我不确定第二行缩进有多深.当一个双重缩进嵌套循环时,这些类型的行继续变得更加棘手,并且一行上只有50个字符可用.

我是否应该接受科学Python看起来很笨重,或者有没有办法避免像上面的例子那样的线条?

一些可能的方法是:

  • 使用较短的变量名称
  • 使用较短的字典键名
  • 直接导入numpy函数并为它们分配短名称
  • 为算术运算的组合定义辅助函数
  • 将操作分成小块,并在每条线上放置一个

我很欣赏任何有关这些方面的信息,以及要避免哪些方面,以及对其他补救措施的建议.

python numpy scipy

9
推荐指数
1
解决办法
318
查看次数

标签 统计

numpy ×1

python ×1

scipy ×1