私はあなたの最初のテストラインエラーが発生する
In [156]: data=np.zeros((3,4,2),dtype= [[(0,0,0)],])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-156-9f6f75b73353> in <module>()
----> 1 data=np.zeros((3,4,2),dtype= [[(0,0,0)],])
TypeError: data type not understood
その式はあなたのために実行されるかどうか?あなたはそれがそうであるように聞こえるようにします。そうでない場合は、エラーについて明確にする必要があります。
しかし、タプルの行列は正確にはどういう意味ですか?表示するだけのもの
[[(0,0,0),(0,0,0),(0,0,0)],[(0,0,0),(0,0,0)]]
putdata
という方法があります。あなたはどんなパッケージについて話していますか?いいえnumpy
。
私はそれがタプル構文を使用しても技術的に、これは、タプルが含まれていないこの
In [158]: np.zeros((2,2),dtype='i,i,i')
Out[158]:
array([[(0, 0, 0), (0, 0, 0)],
[(0, 0, 0), (0, 0, 0)]],
dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<i4')])
In [159]: print(np.zeros((2,2),dtype='i,i,i'))
[[(0, 0, 0) (0, 0, 0)]
[(0, 0, 0) (0, 0, 0)]]
のように表示される構造体配列を作成することができます。それをリストに変換するほうが良いかもしれません。
In [160]: np.zeros((2,2),dtype='i,i,i').tolist()
Out[160]: [[(0, 0, 0), (0, 0, 0)], [(0, 0, 0), (0, 0, 0)]]
この最後の結果は、タプルのリストのネストリストです。
内部要素がタプルであることは本当に重要ですか?
In [179]: np.zeros((2,2,3),int)
Out[179]:
array([[[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0]]])
In [180]: np.zeros((2,2,3),int).tolist()
Out[180]: [[[0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0]]]
は、多くの場合、Pythonでリストやタプルは交換可能です。
そのputdata
メソッドの詳細を知る必要があります。私はputdata
がPIL
方法で検索から推測している
===============
。その場合
、これは動作します:
In [240]: from PIL import Image
In [241]: im=Image.new('RGB',(10,10))
In [243]: im.putdata(np.ones((100,),dtype='i,i,i').tolist())
im.putdata(np.ones((10,10),dtype='i,i,i').tolist())
は動作しません。データは
[(0,0,0),(0,1,0), etc]
im.putdata([(0,1,0)]*100)
フラットなリストである必要がありますように、それはタプルの単純なリストの複製であることからも、作品に見えます。
ありがとう!私の主な問題は、putdataメソッドでフラットリストを使用すべきだったということでした。 – kipatbarzel1