簡単にnumpyを使うtile()
2909 ワード
NumPyモジュールには関数tile(A,reps)機能があります.Aを各次元にコピーするパラメータ:A:コピーするリストreps:各軸に沿って繰り返す回数を表します.
例えばA=[1,2]でtile(A,2)を実行した場合の結果は[1,2,1,2]であり,x軸に2回繰り返すと理解できる.
Aが1つのトレーニングサンプルとして、3つ以上のトレーニングサンプルを含むトレーニングサンプルセットを構築したい場合は、NumPyのtile関数を使用します.方法は次のとおりです.
結果は次のとおりです.
ここでreps(すなわち中の(3,1))には2つのパラメータ(一応パラメータと呼ぶ)が付いており、ほとんどの場合tile関数で十分なニーズを満たすことができますが、repsには多くのパラメータが付いており、数字が表す意味はいったい何なのかを発見することがあります.以下はtileに対するいくつかの理解です.
まず、次元が1のリスト[1,2]と次元が2のリスト[[1,2]](次元がどれだけかっこを見ているか)を作成します.
numpyについてtile(A,reps)の中のrepsパラメータ:
1.repsのパラメータ個数≧リスト次元の場合、いくつかのパラメータは数次元リスト(中括弧数に注意):
2.パラメータ個数<リスト次元の場合、最小次元はパラメータ個数に等しい
3.最も右のパラメータが最も深いリストのコピー回数に対応する:
4.右からn番目のパラメータは、最後からn番目のレイヤリストのコピー回数に対応します.
5.あるいは、repsのパラメータについて、左側から見ると、最後のパラメータが最も深いリストをコピーする以外に、リスト全体を何度もコピーすることを理解することができます.
例:
pythonコマンドラインは次のとおりです.
多くの例を見れば理解できます.
例えばA=[1,2]でtile(A,2)を実行した場合の結果は[1,2,1,2]であり,x軸に2回繰り返すと理解できる.
>>> A = array([1,2])
>>> tile(A,2)
array([1,2,1,2])
Aが1つのトレーニングサンプルとして、3つ以上のトレーニングサンプルを含むトレーニングサンプルセットを構築したい場合は、NumPyのtile関数を使用します.方法は次のとおりです.
>>> tile(A,(3,1))
結果は次のとおりです.
array([[1,2],[1,2],[1,2]])
ここでreps(すなわち中の(3,1))には2つのパラメータ(一応パラメータと呼ぶ)が付いており、ほとんどの場合tile関数で十分なニーズを満たすことができますが、repsには多くのパラメータが付いており、数字が表す意味はいったい何なのかを発見することがあります.以下はtileに対するいくつかの理解です.
まず、次元が1のリスト[1,2]と次元が2のリスト[[1,2]](次元がどれだけかっこを見ているか)を作成します.
>>> from numpy import*
>>> a = array([1, 2])
>>> b = array([[1, 2]])
numpyについてtile(A,reps)の中のrepsパラメータ:
1.repsのパラメータ個数≧リスト次元の場合、いくつかのパラメータは数次元リスト(中括弧数に注意):
>>> tile(a,(1)) // tile(a,1)
array([1, 2])
reps 1 = 1
>>> tile(a,(1,1))
array([[1, 2]])
2 > 1
>>> tile(a,(1,1,1))
array([[[1, 2]]])
3 > 1
2.パラメータ個数<リスト次元の場合、最小次元はパラメータ個数に等しい
>>> tile(b,(1))
array([[1, 2]])
reps 1, 2, 2
>>> tile(b,(1,1))
array([[1, 2]])
>>> tile(b,(1,1,1))
array([[[1, 2]]])
3 > 2, 1 , 3
3.最も右のパラメータが最も深いリストのコピー回数に対応する:
>>> tile(a,(1,3))
array([1, 2, 1, 2, 1, 2])
3, [1,2] [1,2,1,2,1,2]
>>> tile(b,(1,3))
array([[1, 2, 1, 2, 1, 2]])
4.右からn番目のパラメータは、最後からn番目のレイヤリストのコピー回数に対応します.
, , 1, 2 2, 2 2
>>> tile(a,(2,1))
array([[1, 2],
[1, 2]])
>>> tile(a,(3,1))
array([[1, 2],
[1, 2],
[1, 2]])
5.あるいは、repsのパラメータについて、左側から見ると、最後のパラメータが最も深いリストをコピーする以外に、リスト全体を何度もコピーすることを理解することができます.
例:
tile(a,(2,1,3))
a [1,2] 2 [[1,2],[1,2]], 1 [[[1,2],[1,2]]], 3 ( X ), [[[1,2,1,2,1,2],[1,2,1,2,1,2]]]
pythonコマンドラインは次のとおりです.
>>> tile(a,(2,1,3))
array([[[1, 2, 1, 2, 1, 2]],
[[1, 2, 1, 2, 1, 2]]])
多くの例を見れば理解できます.
>>> a = array([0, 1, 2])
>>> tile(a, 2)
array([0, 1, 2, 0, 1, 2])
>>> tile(a, (2, 2))
array([[0, 1, 2, 0, 1, 2],
[0, 1, 2, 0, 1, 2]])
>>> tile(a, (2, 1, 2))
array([[[0, 1, 2, 0, 1, 2]],
[[0, 1, 2, 0, 1, 2]]])
>>> b = array([[1, 2], [3, 4]])
>>> tile(b, 2)
array([[1, 2, 1, 2],
[3, 4, 3, 4]])
>>> tile(b, (2, 1))
array([[1, 2],
[3, 4],
[1, 2],
[3, 4]])
>>> c = array([1,2,3,4])
>>> tile(c,(4,1))
array([[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]])