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]))
しかし、これはあまり良くないように見えます.2行目をどれだけ深くインデントすればよいかわかりません. この種の行の継続は、ネストされたループに二重インデントされ、1 行で使用できる文字数が 50 文字しかない場合、さらに複雑になります。
科学的な Python が不格好に見えることを受け入れる必要がありますか、それとも上記の例のような行を回避する方法はありますか?
いくつかの潜在的なアプローチは次のとおりです。
- 短い変数名を使用する
- 短いディクショナリ キー名を使用する
- numpy 関数を直接インポートして短い名前を割り当てる
- 算術演算の組み合わせに対するヘルパー関数の定義
- 操作を細かく分割し、各行に 1 つ配置する
これらのうちどれを追求し、どれを避けるべきかについての知恵と、他の救済策の提案をいただければ幸いです.