NumPyでコピーを作成せずに、指定された軸に沿って多次元配列(つまり、タイプ)を平坦化する方法があるかどうかは疑問です。たとえば、私は2D画像の配列を持っており、それぞれをベクトルにフラット化したいと考えています。したがって、簡単な方法の1つはnumpy.array([im.flatten() for im in images])
ですが、それはそれぞれのコピーを作成します。NumPyでコピーを作成せずに多次元配列の軸を平らにする方法は?
10
A
答えて
12
ravel
それ:
>>> a = numpy.arange(25).reshape((5, 5))
>>> b = a.ravel()
>>> b[0] = 55
>>> a
array([[55, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
それともreshape
それ:
>>> a = numpy.arange(27).reshape((3, 3, 3))
>>> b = a.reshape((9, 3))
>>> b[0] = 55
>>> a
array([[[55, 55, 55],
[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
ほとんどの状況下では、これらは両方とも、元の配列ではなく、コピーのビューを返します。
7
あなたが入力配列の形状がわからない場合:
images.reshape((images.shape[0], -1))
-1
は残りの次元を動作するように作り変えるように指示します。これは、 が画像の最初の軸を平坦にしたいと仮定しています。
関連する問題
- 1. 多次元配列のnumpy平均
- 2. Python:PyTablesにnumpy多次元配列を格納する方法は?
- 3. リストから多次元配列を作成する方法は?
- 4. NetCDF4 pythonはnumpyの多次元配列を作成します
- 5. Javaスクリプトで多次元配列を作成する方法は?
- 6. Numpyは、多次元配列の多次元配列を変更します。
- 7. XMLから多次元配列テーブルを作成するには?
- 8. jQueryで多次元配列を作成する方法
- 9. コピー多次元配列C
- 10. 配列を平坦化する関数を作成する方法は? Javascriptの多次元配列から一次元配列へ
- 11. 次元を変更せずに多次元NumPy配列の形状を変更する
- 12. 別の1次元配列の中にnumpyの多次元配列を挿入
- 13. 多次元配列の再帰的なPHPを平らにする方法
- 14. numpyが多次元配列を作成しないようにする
- 15. 多次元配列を二次元配列に代入する方法は?
- 16. jQueryで多次元配列を作成するには?
- 17. PHPで多次元配列を作成するには?
- 18. Javascriptで多次元配列を作成するには?
- 19. 1D配列を多次元配列にコピーする - VBA
- 20. Numpyでの多次元インデックス作成
- 21. PHPは、多次元配列を平らに
- 22. Jinja2:多次元のjavascript配列を作成するには?
- 23. numpy多次元配列の解釈
- 24. 多次元配列のNumpy、ドットプロダクト
- 25. PowerShellは私はこのようなPowerShellで多次元配列を作成したい多次元配列に
- 26. 文字列リテラルから多次元配列を作成する方法
- 27. 多次元配列を作成
- 28. 多次元配列の作成方法は?
- 29. C++ - 多次元配列の作成方法は?
- 30. 多次元配列の内容を単一配列にコピー
ありがとうございました! 'reshape'は私のトリックでした。私はそれが私の2D行列とベクトルとの間の1対1のマッピングを壊す前に考えました。しかし、いいえ、それは働いた! –