2017-06-11 16 views
-2

リストを特定の次元のnumpy配列に再作成したい。リストをnumpy配列に再構成するPython:次元問題

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

は私がの次元にnumpyの配列にこのリストを変換し、それを再構築したい(3、4)、のような次:

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

私私のリストは以下のようになります。 Transposing a NumPy arrayやSciPyのマニュアルなど、以前のいくつかのスレッドをチェックしましたが、どのように動作していて、リストを自分の希望する配列形式に変換できなかったのか分かりません。あなたが最も内側の呼び出しでarrayを必要としない

+0

。リストの中で配列を再形成することができます。この場合、リストと配列の区別が重要です。 – hpaulj

+0

私はこれを啓発してくれてありがとう、私はドキュメントをチェックし、このポストで私の質問について考え直す。 –

答えて

3
>>> a 
[array([[[1], 
     [2], 
     [3], 
     [4]], 

     [[2], 
     [3], 
     [4], 
     [1]], 

     [[3], 
     [4], 
     [2], 
     [1]]])] 
>>> a[0].shape 
(3, 4, 1) 
>>> a[0] = a[0].reshape(3,4) 
>>> a 
[array([[1, 2, 3, 4], 
     [2, 3, 4, 1], 
     [3, 4, 2, 1]])] 
>>> a[0].shape 
(3, 4) 
>>> 
+0

ありがとう、これは私が得ようとしているものです。私の "リスト"は角括弧の中に "配列"が付いています(私はそれを知りません)、私のリストを目的のフォーマットに再形成できないようです。 誰かがこの投稿を熱心に投票した理由を本当に理解していない... –

+0

@ChrisT。 - 通常は関係なく、質問の質の誰かの意見。 – wwii

1

np.asarrayは喜んで、あなたはちょうどあなたが望む形に作るために.reshapeを呼び出して、ネストされたPythonのリストを取り、ndarrayに全体を変換します。あなたは `リストをreshape`することはできません

my_list = [[[1], 
      [2], 
      [3], 
      [4]], 
      [[2], 
      [3], 
      [4], 
      [1]], 
      [[3], 
      [4], 
      [2], 
      [1]]] 
np.asarray(my_list).reshape(3,4) 
+0

"2つの非キーワード引数が受け入れられました"というエラーを返します。 –

+0

_do not_あなたはそれを必要としない 'array'への内部呼び出しを含みます! –

関連する問題