私はたくさん試しましたが、concatenate
またはvstack
のどれも私のために働いていません。2次元のnumpy配列のリストを3d numpy配列に連結するにはどうすればよいですか?
0
A
答えて
4
あなたはnp.array
を試したことがありますか?
np.array([[1,2],[3,4]])
2つの1Dアレイ(リスト)
同様
np.array([np.ones(3,3), np.zeros(3,3)]]
を連結することによって、2Dアレイ(2,3,3)アレイを製造すべきであることができます。
新しい軸np.stack
を使用すると、追加する軸をより詳細に制御できます。これは、すべての入力配列の次元を1つずつ拡張し、連結することによって機能します。
自分でサイズを拡張することができます。
In [378]: A=np.ones((2,3),int)
In [379]: B=np.zeros((2,3),int)
In [380]: np.concatenate([A[None,:,:], B[None,:,:]], axis=0)
Out[380]:
array([[[1, 1, 1],
[1, 1, 1]],
[[0, 0, 0],
[0, 0, 0]]])
In [381]: _.shape
Out[381]: (2, 2, 3)
を理解するために重要なものは以下のとおりです。
入力の大きさに一致する- それらはすべてに一致する必要はなく、
に入社されている次元は入力の次元を拡大必要に応じて。 2D配列を連結して3Dを形成するには、2Dを最初に3Dに拡張する必要があります。その
None
またはnp.newaxis
トリックは特に貴重です。右軸に沿って連結します。
stack
、hstack
、vstack
などすべてがこれを容易にするが、スキルnumpyのユーザーがconcatenate
を直接操作することができるはずです。インタラクティブなセッションで小さなサンプルで練習する。
In [385]: np.array((A,B)).shape
Out[385]: (2, 2, 3)
In [386]: np.stack((A,B)).shape
Out[386]: (2, 2, 3)
In [387]: np.stack((A,B),axis=1).shape
Out[387]: (2, 2, 3)
In [388]: np.stack((A,B),axis=2).shape
Out[388]: (2, 3, 2)
アレイは形状が異なる場合は、np.array
は、オブジェクトDTYPEアレイ
In [389]: C=np.ones((3,3))
In [390]: np.array((A,C))
Out[390]:
array([array([[1, 1, 1],
[1, 1, 1]]),
array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])], dtype=object)
In [391]: _.shape
Out[391]: (2,)
dstack
(及びstack
)を作成する異なるサイズの配列に問題があります:
In [392]: np.dstack((A,B,C))
....
ValueError: all the input array dimensions except for the concatenation axis must match exactly
2
あなたはnp.dstack使用することができ、ドキュメントは次の場所にあります。https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.dstack.html
import numpy as np
l1 = []
# create list of arrays
for i in range(5):
l1.append(np.random.random((5, 3)))
# convert list of arrays into 3-dimensional array
d = np.dstack(l1)
d.shape #(5,3,5)
関連する問題
- 1. 2次元配列での3d numpy配列のインデックス化
- 2. numpyの2次元配列内にリストを格納するにはどうすればよいですか?
- 3. 2次元numpy配列を3次元配列に配置
- 4. 2つの多次元配列を連結numpyの
- 5. リストとnumpy配列を連結する
- 6. 3d配列を4次元配列に変更numpy
- 7. numpy配列の中で最大の2次元スライスを得るにはどうすればよいですか?
- 8. 2D numpy配列のリストを3D numpy配列に変換しますか?
- 9. 3D numpy配列の引数を4D numpy配列に渡す
- 10. numpy 2D配列にnumpy 1D配列を乗算するにはどうすればよいですか?
- 11. numpy文字配列をnumpy float配列に変換するにはどうすればよいですか?
- 12. 2次元配列のPython Numpy Indexing
- 13. 一次元で2次元numpy配列を外挿する
- 14. 2次元配列のnumpyのドットてprodoctと3D配列要素賢明
- 15. numpy配列のローリング連結配列
- 16. Python numpy配列の連結
- 17. Numpy reshape 1列の1次元配列から2次元配列
- 18. NumPy:連結中にエラー - ゼロ次元配列を連結できません
- 19. python:3次元配列を作成する2次元numpy配列を2つ結合する
- 20. Numpy配列をインターリーブで連結する
- 21. 2次元配列を3次元配列にするにはどうすればいいですか?
- 22. 2次元配列内に配列を追加/連結する
- 23. 2つの2D numpy配列を2つのタプルの1つの2次元配列に結合する
- 24. Numpy Pythonで2次元配列に1d配列を追加する
- 25. リストをnumpy配列に再構成するPython:次元問題
- 26. numpy配列を連結する
- 27. NumPy配列を連結する
- 28. どのように2次元配列に配列のリストを変換する?
- 29. Numpyは、多次元配列の多次元配列を変更します。
- 30. numpy配列の次元をどのように減らしますか?
を私がしました'np.array()'を試してみましたが、 '(n、)'という形の配列が返されますが、その中の各要素は別の配列です。 – xxx222
あなたの 'n'配列は形が異なっていなければなりません。オブジェクト配列を作成しています。あなたの配列の形は何ですか? 'dstack'がどのように動作するのか分かりません。 – hpaulj
私はそれがその時にそれを認識していない!私は最終的に私の数が少ない配列のいくつかが同じサイズではないことを発見しました。あなたの答えをどうもありがとう! – xxx222