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. Python:PyTablesにnumpy多次元配列を格納する方法は?
- 2. リストから多次元配列を作成する方法は?
- 3. 1D配列を多次元配列にコピーする - VBA
- 4. 多次元配列のNumpy、ドットプロダクト
- 5. Javascriptで多次元配列を作成するには?
- 6. PHPで多次元配列を作成するには?
- 7. Jinja2:多次元のjavascript配列を作成するには?
- 8. numpy任意の軸を介して多次元配列を再整形
- 9. この文字列から多次元PHP配列を作成するには?
- 10. 多次元配列intを指すポインタをC++で作成する方法は?
- 11. 多次元NumPy配列をstruct.packと同じディスクに書き込む方法は?
- 12. PHPオブジェクトのプロパティから多次元配列を作成する
- 13. クエリから2次元配列を作成する方法は?
- 14. 多次元配列を持つ多次元オブジェクトを作成する
- 15. 多次元配列から配列を取り出す方法
- 16. 多次元配列を1次元配列に変換する
- 17. (Rails)データセットから多次元ハッシュ/配列を作成する...?
- 18. クエリから多次元配列を作成する
- 19. 2次元配列を2次元配列で作成する
- 20. 1次元配列から2次元配列に情報をコピーする方法は?
- 21. 2次元多次元NSMutable配列をソートする方法
- 22. は多次元配列のコピーを作成し、参照しない - JavaScriptを
- 23. 多次元配列を別の多次元配列にマージする
- 24. メソッド配列パラメータから多次元文字列配列を作成する
- 25. 2次元または多次元配列のパラメータを持つプロシージャを作成する方法は?
- 26. データベースから4次元配列を作成する方法
- 27. JSTLに多次元配列を表示する方法は?
- 28. 多次元配列を迅速にソートする方法は?
- 29. javascriptで多次元配列を作成する
- 30. VBScriptで多次元、連想配列を作成する
ありがとうございました! 'reshape'は私のトリックでした。私はそれが私の2D行列とベクトルとの間の1対1のマッピングを壊す前に考えました。しかし、いいえ、それは働いた! –