は、ネストされたリストを作成します。
In [8]: alist=[[1,2,3],[4,5]]
In [9]: len(alist)
Out[9]: 2
それは、2つの項目のリストです。アイテムはリストになります。いくつかのソートメタビューでは2dですが、リスト自体は2dではありません。
それから配列を作成します。
In [10]: arr = np.array(alist)
In [11]: arr.shape
Out[11]: (2,)
In [12]: arr.dtype
Out[12]: dtype('O')
In [13]: arr
Out[13]: array([[1, 2, 3], [4, 5]], dtype=object)
In [14]: arr[0]
Out[14]: [1, 2, 3]
In [15]: type(arr[0])
Out[15]: list
Iのいずれかの要素を変更した場合はそれがあまりにもalist
(同じid)
In [16]: id(alist[0])
Out[16]: 2992863468
In [17]: id(arr[0])
Out[17]: 2992863468
として、実際には2つの要素、同じ2つのサブリストを持っていますこれらのサブリスト、変更はほとんどの目的のために他の構造
In [18]: arr[0][1]=3
In [19]: arr
Out[19]: array([[1, 3, 3], [4, 5]], dtype=object)
In [20]: alist
Out[20]: [[1, 3, 3], [4, 5]]
に表示されたオブジェクトの配列リクこれはリストのようなものです。あなたはそれを形作ることができます、例えば。 `arr.reshape(2,1) 'を追加することはできません。ほとんどのアクションを実行するには、リストのように要素を繰り返し処理する必要があります(またはnumpy)。
コントラストは、整数の2次元配列で
In [21]: A=np.array([[1,2,3],[4,5,6]])
In [22]: A
Out[22]:
array([[1, 2, 3],
[4, 5, 6]])
In [23]: A.shape
Out[23]: (2, 3)
In [24]: A.dtype
Out[24]: dtype('int32')
が、それは私が配列にarr
の要素を変更した場合object
障壁を視覚化する意志することができることを:
In [26]: arr[0]=np.array(arr[0])
In [27]: arr[1]=np.array(arr[1])
In [28]: arr
Out[28]: array([array([1, 3, 3]), array([4, 5])], dtype=object)
今は配列です配列の;まだ2次元配列と同じではありません。
リストのリストとして保存できます。 'type(nFuncs [1])'を試したことがありますか? – DeanLa
'シェイプ 'とは何ですか? – hpaulj
@hpauljそれは(2、) – noclew