'n,m'
はaxis=n
に沿って連結し、少なくともm
寸法を有する形状を生成するr_
に指示:
In [28]: np.r_['0,2', [1,2,3], [4,5,6]]
Out[28]:
array([[1, 2, 3],
[4, 5, 6]])
は、そこで、軸= 0に沿って連結されている、と我々は通常どおりしたがって、結果は形状(6,)
を期待しますが、m=2
以来、r_
には形状が少なくとも2次元でなければならないと伝えています。あなたがr_
で行うことができます
In [36]: np.r_['0,3', [1,2,3,], [4,5,6]].shape
Out[36]: (2, 1, 3) # <- 3 dimensions
In [37]: np.r_['0,4', [1,2,3,], [4,5,6]].shape
Out[37]: (2, 1, 1, 3) # <- 4 dimensions
何も読みやすく、アレイ構築機能の一つで行うことができます:私たちはm
を増やすときに何が起こるかで
In [32]: np.r_['0,2', [1,2,3,], [4,5,6]].shape
Out[32]: (2, 3)
ルック:だからではなく、我々は形状(2,3)
を取得します例えばnp.concatenate
,np.row_stack
,np.column_stack
,np.hstack
,np.vstack
またはnp.dstack
のようなものであるが、reshape
も必要とする場合がある。
でも再構築するための呼び出しで、これらの他の機能はより速くことがあります
In [38]: %timeit np.r_['0,4', [1,2,3,], [4,5,6]]
10000 loops, best of 3: 38 us per loop
In [43]: %timeit np.concatenate(([1,2,3,], [4,5,6])).reshape(2,1,1,3)
100000 loops, best of 3: 10.2 us per loop
は[unutbu](http://stackoverflow.com/users/190597/unutbu)「私はないんだけど書きましたこの表記法のファンです。 "、なぜ私は最初に数値/数値配列で導入されたのだろうかと思います。通常の容疑者はmatlabとの互換性がありますが、私はfortran-> pythonに移行しました。私は確かに教えるのに十分なmatlabを知りません... – gboffi