[解決済み] numpy配列のリストを単一のnumpy配列に変換する方法は?
質問
仮に、私が;
LIST = [[array([1, 2, 3, 4, 5]), array([1, 2, 3, 4, 5],[1,2,3,4,5])] # inner lists are numpy arrays
変換しようとする。
array([[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5])
今、vstack上で反復して解決していますが、特に大きなLISTでは本当に遅いです。
最も効率的な方法は何でしょうか?
解決方法は?
一般に、配列の連続は、どの軸にも沿って連結することができます。
numpy.concatenate( LIST, axis=0 )
でも する は,リスト内の各配列の形状や次元を気にする必要があります(2次元3x5出力では,それらがすべて既に2次元n×5配列であることを確認する必要があります). 1 次元配列を 2 次元出力の行として連結したい場合は,その次元を拡張する必要があります.
Jorgeさんの回答で指摘されているように、関数
stack
numpy 1.10で導入されました。
numpy.stack( LIST, axis=0 )
これは補完的なアプローチで、各入力配列の新しいビューを作成し、余分な次元(この場合は左側)を追加します。
n
-要素からなる1次元配列は、1×1=1,000,000の配列になります。
n
2次元配列)を連結する。これは、入力配列がすべて同じ形状である場合(連結の軸に沿った形状である場合)にのみ機能します。
vstack
(または同等に
row_stack
なぜなら、1次元および/または2次元の配列のシーケンスを受け取り、必要なところだけ自動的に次元を拡張してから、リスト全体を連結するからです。新しい次元が必要な場合は、左側に追加されます。この場合も、繰り返し処理をすることなく、リスト全体を一度に連結することができます。
numpy.vstack( LIST )
この柔軟な動作は、構文上のショートカットである
numpy.r_[ array1, ...., arrayN ]
(角括弧に注意)。 この構文は、明示的に名前を指定した配列をいくつか連結するのには適していますが、今回のような状況には適していません。
LIST
.
また、類似の関数として
column_stack
とショートカット
c_[...]
また,水平方向(列方向)に積み重ねるための
ほとんど
-類似の機能
hstack
-しかし,後者の方が柔軟性に欠けます(入力配列の次元数についてより厳しく,1次元配列を列として扱うのではなく,端から端まで連結しようとします).
最後に、1次元配列の垂直方向の積み重ねという特殊なケースでは、以下の方法も有効である。
numpy.array( LIST )
...なぜなら、配列は他の配列のシーケンスから構築することができ、最初に新しい次元を追加することができるからです。
関連
-
Python Decorator 練習問題
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] リストの要素数を取得する方法
-
[解決済み] リストからランダムに項目を選択するにはどうすればよいですか?
-
[解決済み] 2つのリストを辞書に変換するにはどうしたらいいですか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
Python LeNetネットワークの説明とpytorchでの実装
-
Python 入出力と高次代入の基礎知識
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない