Numpy.reshape関数の説明


Numpy.reshape()とshape関数
  関連知識:tensorflowではテンソルを利用してデータを表し、テンソルは次数があり、1次テンソルは1次元ベクトルであり、2次テンソルは行列であり、テンソルの説明についてはより多くの説明があり、参照http://blog.csdn.net/u013378306/article/details/56281549このブログ.shapeはテンソルの形状で、配列で表され、n次テンソルはn次元のshapeに対応し、各次の要素数は対応する次元の大きさに等しい.例えば、テンソル
[[[ 1  2]
  [ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]
  [11 12]]]
のshape=(2,3,2).これを理解するとreshape()関数とshape[]関数はよく理解できる:reshape()関数は元のテンソルの次数を再定義し,shape関数はテンソルの形状を表す.具体的な使い方を見てみましょう.
1.Numpy.reshape()
  公式サイトのreshape関数に関する標準フォーマットはnumpy.reshape(a,newshape,order='C')ですが、実はこの関数には2つの使い方があります.まずコードを見てください.
import numpy as np

a=np.array([1,2,3,4,5,6,7,8,9,10,11,12])
b=np.reshape(a,(2,-1))
c=a.reshape(2,-1)
print 'b='
print b
print 'c='
print c
  結果:
b=
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]]
c=
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]]
  配列aを変換するには、b=np.reshape()またはc=a.reshape()の方法が用いられることがわかる.
2.関数内のパラメータの解釈
  第1の方法,すなわちb=np.reshape()の方法を用いた.標準フォーマットのnumpy.reshape(a,newshape,order='C')のnewshapeパラメータとorderパラメータに注目してください.
newshapeパラメータ:
  使用法については、次のコードを参照してください.
import numpy as np

a=np.array([1,2,3,4,5,6,7,8,9,10,11,12])
b=np.reshape(a,(2,-1))
c=np.reshape(a,(2,2,-1))
d=np.reshape(a,(2,3,-1))
print 'b='
print b
print 'c='
print c
print 'd='
print d
  出力:
b=
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]]
c=
[[[ 1  2  3]
  [ 4  5  6]]

 [[ 7  8  9]
  [10 11 12]]]
d=
[[[ 1  2]
  [ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]
  [11 12]]]
 Newshapeパラメータは配列で表され,cを例にとると配列(2,2,−1)はcの形状で3次であり,3番目の数字はreshape後の配列aにおける最小セル中の要素個数であり,ここでは3であり,−1であれば自動的に推測できることを示す.
orderパラメータ  は、要素の配列順序のパラメータで、一般的には使用されません.
2.shape関数
  次のコードは、この関数の使用方法を示しています.
c=np.array([1,2,3,4,5,6,7,8,9,10,11,12])
c=c.reshape(2,3,2)
print c
print c.shape
出力:
[[[ 1  2]
  [ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]
  [11 12]]]
(2, 3, 2)
 すなわちテンソルの形状が得られる.