2013-05-09 7 views
22

正確にnumpy vstackcolumn_stackの違いは何ですか?ドキュメンテーションを読むと、column_stackが1D配列に対してvstackの実装であるかのように見えます。より効率的な実装ですか?さもなければ、私はちょうどvstackがある理由を見つけることができません。numpy vstackとcolumn_stack

答えて

50

私は、次のコードはうまく違いを示していると思う:

>>> np.vstack(([1,2,3],[4,5,6])) 
array([[1, 2, 3], 
     [4, 5, 6]]) 
>>> np.column_stack(([1,2,3],[4,5,6])) 
array([[1, 4], 
     [2, 5], 
     [3, 6]]) 
>>> np.hstack(([1,2,3],[4,5,6])) 
array([1, 2, 3, 4, 5, 6]) 

私も比較のためhstackを用意しました。 2番目の次元に沿ってcolumn_stackがどのようにスタックするかに注目してください。一方、vstackは最初の次元に沿ってスタックします。

>>> np.hstack(([[1],[2],[3]],[[4],[5],[6]])) 
array([[1, 4], 
     [2, 5], 
     [3, 6]]) 

私たちはcolumn_stackがより便利であることに同意することを願って:column_stackに相当、以下のhstackコマンドです。 column_stack注記セクションで

6

、これを指摘:

この関数はnp.vstack(tup).Tと等価です。

numpyには、他の機能の便利なラッパーである多くの機能があります。例えば、vstackのノートセクションは言う:

np.concatenate(tup, axis=0)に相当

TUPは、少なくとも2次元である配列を含む場合。

column_stackは、vstackの便利機能です。

関連する問題