2

2D numpy 配列のリストがあります。テストとして、次のリストを検討してください。

lst = [np.arange(10).reshape(5,2)]*10

これで、次の方法で特定のデータ要素を取得できます。

lst[k][j,i]

これを numpy 配列に変換して、インデックスを作成できるようにしたいと思います。

array[k,j,i]

つまり、形状は である必要があります(10, 5, 2)

これはうまくいくようですが、完全に不必要なようです:

z = np.empty((10,5,2))
for i,x in enumerate(z):
    x[:,:] = lst[i]

これらは機能しません:

np.hstack(lst)
np.vstack(lst)
np.dstack(lst)  #this is closest, but gives wrong shape (5, 2, 10)

np.dstackaと aを組み合わせることができると思いますnp.rollaxisが、やはり、それは正しくないようです...

numpyでこれを行う良い方法はありますか?

この非常に関連する投稿を見てきましたが、うまくいかないようです。

4

2 に答える 2

4

これは、配列コンストラクターを呼び出すだけで機能するはずnp.array(lst)です。

>>> l = [np.arange(10).reshape((5,2)) for i in range(10)]
>>> np.array(l).shape
(10, 5, 2)
于 2012-12-19T20:08:29.247 に答える
2

みたいな意味ですか

>>> lst = [np.arange(10).reshape(5,2)]*10
>>> arr = np.array(lst)
>>> arr.shape
(10, 5, 2)

?

于 2012-12-19T20:08:06.263 に答える