>>> np.r_['0,2,0', [1,2,3], [4,5,6]]
array([[1],
[2],
[3],
[4],
[5],
[6]])
3番目の数字が文字列 '0,2,0' は何を意味するのでしょうか?
>>> np.r_['0,2,0', [1,2,3], [4,5,6]]
array([[1],
[2],
[3],
[4],
[5],
[6]])
3番目の数字が文字列 '0,2,0' は何を意味するのでしょうか?
文字列パラメータr_
をあまり使用していません。私にとって、concatanate
とその変種で直接作業する方が簡単です。ドキュメントを見
しかし:
3カンマで区切られた整数の文字列は 軸の仕様は、に沿って エントリに強制する寸法の最小数を連結することができ、かつ軸べき が指定された次元数より少ない配列の先頭を含みます。
'0.2.0'
axis = 0
make it 2d
start with 0d
In [79]: np.r_['0,2,0', [1,2,3], [4,5,6]]
Out[79]:
array([[1],
[2],
[3],
[4],
[5],
[6]])
等価CONCATENATE
In [80]: np.concatenate(([1,2,3], [4,5,6]))
Out[80]: array([1, 2, 3, 4, 5, 6])
In [81]: np.concatenate(([1,2,3], [4,5,6]))[:,None]
Out[81]:
array([[1],
[2],
[3],
[4],
[5],
[6]])
ここでは、軸= 0で連結し、CONCATENATE後2dに拡大してきました。しかし、r_
のように、最初に要素のサイズを拡大しているようです(でも、コードを2回チェックすることができます)。
In [83]: alist = ([1,2,3], [4,5,6])
In [86]: [np.expand_dims(a,1) for a in alist]
Out[86]:
[array([[1],
[2],
[3]]), array([[4],
[5],
[6]])]
In [87]: np.concatenate(_, axis=0)
Out[87]:
array([[1],
[2],
[3],
[4],
[5],
[6]])
私は入力2 D作るためにexpand_dims
を使用していて、最初の後に新たな次元を追加します。私はr_
への入力が既にのように、2Dとすることができる0
注軸に連結することができることを行った:1であれば、
np.r_['0,2,0',[1,2,3], [[4],[5],[6]]]
np.r_['0,2,0',[1,2,3], np.expand_dims([4,5,6],1)]
np.r_['0,2,0',[1,2,3], np.atleast_2d([4,5,6]).T]
3D数、
In [105]: np.atleast_2d([4,5,6])
Out[105]: array([[4, 5, 6]])
In [103]: np.r_['0,2,1',[1,2,3],[4,5,6]]
Out[103]:
array([[1, 2, 3],
[4, 5, 6]])
に部品を回転させます
ドキュメントが不明確な場合は、コードを掘り起こすか、代替入力を試してみることがよくあります。コードを見てみると
In [107]: np.r_['1,2,1',[1,2,3], [4,5,6]]
Out[107]: array([[1, 2, 3, 4, 5, 6]])
In [108]: np.r_['1,2,0',[1,2,3], [4,5,6]]
Out[108]:
array([[1, 4],
[2, 5],
[3, 6]])
、私はそれが必要なndmin
にコンポーネントを展開する
array(newobj, copy=False, subok=True, ndmin=ndmin)
を使用しています参照してください。 3d数値は、transpose
パラメータを構成するために使用されます。詳細は厄介ですが、効果は次のようなものです:
In [111]: np.array([1,2,3], ndmin=2)
Out[111]: array([[1, 2, 3]])
In [112]: np.array([1,2,3], ndmin=2).transpose(1,0)
Out[112]:
array([[1],
[2],
[3]])
「[...]文書内」と言って、それらをリンクしません。 –
(doc:https://docs.scipy.org/doc/numpy/reference/generated/numpy.r_)を参照するのが最適でしょう。html)、特定の質問にそれを読んでください。 FWIW、それは混乱しますが、3番目の数字は自然にn次元をn + 1以上の次元に強制するときに、「縮まれた」軸であることを示します。 –
はい、私は第3パラメータ(0)がスライスが起こる次元を示していると思います。これは、0,2,1で試してみると明らかです.o/pは次のようになります:array([[1,2,3]、[4,5,6]]) – skrubber