私は形の数字が(1429,1)
であり、各行自体は形状がnumpyの配列(3,100
です。ここでlは行ごとに異なる場合があります。 結果のnumpy配列の形状が(1429, 300)
になるように各行をフラット化することで、この配列の形状を変更できますか?多次元ナンプィ配列の形状変更
1
A
答えて
2
私はあなたの最初の配列の形状は、それが本当ならば、あなたはそれが以下のような形状です変更することができ、(1429、3、100)であると思います:
import numpy as np
a = a.flatten().reshape((1429, 300)) #a is the initial numpy array
2
あなたの埋め込み構造の種類は、おそらくobject.
それはちょうどですさ1429 numpy.ndarrays
の参考文献の集まり。
exempleとして:
a=np.empty((1429,1),object)
for x in a :
x[0]=np.random.rand(3,100)
In [19]: a.shape,a.dtype
Out[19]: ((1429, 1), dtype('O'))
In [20]: a[0,0].shape
Out[20]: (3, 100)
構造はおそらく連続していません。すべてのデータを含むブロックを得るために、あなたは良いレイアウトを得るために、それを再構築する必要があります。
b=np.array([x.ravel() for x in a.ravel()])
In [21]: b.shape
Out[21]: (1429, 300)
ravel
廃棄不要な次元を。
0
形状(1429,1)を持つオブジェクトdtype配列であり、すべての要素が形状(3,100)の2次元であると仮定すると、「平坦化」する良い方法はconcatenate
またはstack
を使用することです。私はarr.ravel()
を使用
np.stack(arr.ravel()).reshape(-1,300)
ので、配列はstack
に(1429)要素のリストのように見えます。 stack
は要素を連結し、(1429,3,100)配列を作成します。再構成すると、それが(1429、300)に変換されます。デフォルトaxis=0
と
In [939]: arr = np.empty((5,1),object)
In [940]: arr[:,0] = [np.arange(6).reshape(2,3) for _ in range(5)]
In [941]: arr
Out[941]:
array([[array([[0, 1, 2],
[3, 4, 5]])],
[array([[0, 1, 2],
[3, 4, 5]])],
[array([[0, 1, 2],
[3, 4, 5]])],
[array([[0, 1, 2],
[3, 4, 5]])],
[array([[0, 1, 2],
[3, 4, 5]])]], dtype=object)
In [942]: np.stack(arr.ravel())
Out[942]:
array([[[0, 1, 2],
[3, 4, 5]],
[[0, 1, 2],
[3, 4, 5]],
[[0, 1, 2],
[3, 4, 5]],
[[0, 1, 2],
[3, 4, 5]],
[[0, 1, 2],
[3, 4, 5]]])
In [943]: np.stack(arr.ravel()).reshape(-1,6)
Out[943]:
array([[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5]])
np.stack
np.array(...)
と同じです。
それともconcatenate
In [950]: np.concatenate(arr.ravel(),axis=0)
Out[950]:
array([[0, 1, 2],
[3, 4, 5],
[0, 1, 2],
[3, 4, 5],
[0, 1, 2],
[3, 4, 5],
[0, 1, 2],
[3, 4, 5],
[0, 1, 2],
[3, 4, 5]])
In [951]: np.concatenate(arr.ravel(),axis=0).reshape(5,6)
Out[951]:
array([[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5],
[0, 1, 2, 3, 4, 5]])
関連する問題
- 1. 次元を変更せずに多次元NumPy配列の形状を変更する
- 2. Numpyは、多次元配列の多次元配列を変更します。
- 3. PHP多次元配列の変更
- 4. PHP変更多次元配列構造
- 5. 多次元配列の線形シミュレーション
- 6. 同じ形状の2つの複雑な多次元配列の状態チェック
- 7. 多次元ブールインデックス多次元配列へ
- 8. 多次元配列を1次元配列に変換する
- 9. 2次元配列への3次元配列の選択的再形状
- 10. 1次元多次元配列への入れ子多次元配列
- 11. 多次元配列
- 12. 多次元配列
- 13. 多次元配列
- 14. 多次元配列
- 15. 多次元配列
- 16. 多次元配列
- 17. 多次元配列
- 18. 多次元配列
- 19. 多次元配列
- 20. 多次元配列
- 21. 多次元配列
- 22. 多次元配列
- 23. 多次元配列
- 24. 多次元配列
- 25. 多次元配列
- 26. 多次元配列
- 27. 多次元配列をjson形式に変換する
- 28. 多次元配列を更新する
- 29. 多次元配列から1次元ベクトルへの変換
- 30. テンソルフローの多次元配列
との私達にあなたの最小限かつ検証例を表示 – Chiel