2017-10-20 7 views
1

numpy.r_の文字列の意味は何ですか? numpyのの<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.r_.html" rel="nofollow noreferrer">documents</a>で

>>> np.r_['0,2,0', [1,2,3], [4,5,6]] 
array([[1], 
     [2], 
     [3], 
     [4], 
     [5], 
     [6]]) 

3番目の数字が文字列 '0,2,0' は何を意味するのでしょうか?

+1

「[...]文書内」と言って、それらをリンクしません。 –

+0

(doc:https://docs.scipy.org/doc/numpy/reference/generated/numpy.r_)を参照するのが最適でしょう。html)、特定の質問にそれを読んでください。 FWIW、それは混乱しますが、3番目の数字は自然にn次元をn + 1以上の次元に強制するときに、「縮まれた」軸であることを示します。 –

+0

はい、私は第3パラメータ(0)がスライスが起こる次元を示していると思います。これは、0,2,1で試してみると明らかです.o/pは次のようになります:array([[1,2,3]、[4,5,6]]) – skrubber

答えて

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]]) 
0

enter image description here

がすべての答えをありがとう!さて、私はこの問題をよりよく理解していると思う。だから、私はマインドマップを描きました。私が間違っているなら、私を修正してください。 Pythonの初心者として、私はもっと学び、より多くのことを学ぶために全力を尽くしています。最後に、私は貧しい人々のために謝罪しなければなりません。

関連する問題

 関連する問題