2013-04-08 11 views

答えて

100

まあ、numpy.arrayは、ndarrayを作成する便利な機能であり、クラスそのものではありません。

numpy.ndarrayを使用して配列を作成することもできますが、推奨される方法ではありません。 numpy.ndarrayのドキュメント文字列から:

アレイはarrayzeros又はemptyを使用して構築されなければならない...ここで与えられたパラメータは、アレイをインスタンス化するため 低レベル法(ndarray(...))を参照。

実装の肉のほとんどは、Cコード、here in multiarrayである、しかし、あなたはここにndarrayインターフェースを見て起動することができます表示するには

https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py

+1

を与える取得します私は、(配列を考えます)は、[core/src/multiarray/methods.c](https://github.com/numpy/numpy/blob/master/numpy/core/src/mu)に実装されています。 ltiarray/methods.c)をarray_getarray()に追加します。 – flxb

+1

これは、 'np.array'がクラスではないことを忘れてしまったときに私がよくするようにあなたを噛んでしまいます。'x = np.array([1,2.1,3])' 'if isinstance(x、np.array):#これはあなたにTypeError'を与えます –

29

numpy.arrayは、numpy.ndarrayを返す関数です。オブジェクト型numpy.arrayはありません。

5

例のわずか数行のコードnumpy.arrayとnumpy.ndarrayの違いは

ウォームアップステップ:リスト

を構築します

チェックタイプ

print(type(a)) 

あなたは

<class 'list'> 

がnp.array

a = np.array(a) 

を使用して(リストから)のアレイを構築し得るだろうか、あなたはスキップすることができますウォームアップステップは、直接持っている

a = np.array([1,2,3]) 

あなたがnumpyの配列のタイプはnumpyのですがわかります

<class 'numpy.ndarray'> 

を取得するタイプ

print(type(a)) 

を確認してください。

ndarrayまた

isinstance(a, (np.ndarray)) 

によって種類を確認することができますし、

True 

次の二つのラインはあなたにエラーメッセージ

np.darray(a)     # should be np.array(a) 
isinstance(a, (np.array)) # should be isinstance(a, (np.ndarray)) 
関連する問題