3

私はfrom pylab import *、主に化学工学での作業のために、Matlab の無料の代替手段として、科学的な python (を介して) をオンとオフの間使用してきました (私は IPython Notebook のファンです)。私にとって常に奇妙に思われるのは、オブジェクトと対話する方法が一般に 2 通りあるという事実です。たとえば、配列がある場合、次の 2 つの方法でその次元を知ることができます。

a = array([1,2,3],[2,3,4])

「Matlab」の方法があります:

shape(a)

または、代わりに次のように入力して見つけることができます。

a.shape

これは The Zen of Python と矛盾しているようです。

なぜ同じことをするのに複数の方法があるのか​​ 、言語にとってより基本的/自然であり、長期的に使用するのに適した方法はどれなのか疑問に思っています。

4

2 に答える 2

4

メソッドを使用することをお勧めします。結局のところ、 の実装はshapeとにかくメソッドに従うだけです (から/numpy/core/fromnumeric.py):

def shape(a):
    try:
        result = a.shape
    except AttributeError:
        result = asarray(a).shape
    return result

この pylab の多くは、MATLAB からの移行を容易にするために含まれているだけだと思います。numpy であることの例は 他にもたくさんあるので、それに慣れてください。

from pylab import *python と matplotlib に慣れてきたら、MATLAB スタイルの作業ではなく、いずれにしても numpythonic コードを書き始めたいと思うでしょう。

于 2013-10-23T00:49:55.790 に答える