data = np.loadtxt('In_file', dtype=np.float, delimiter=',')
x_test, y_test = np.split(data, (-1,), axis=1)
このコード行はデータを2つの部分に分割したものですが、パラメータ(-1)はどういう意味ですか?pythonのパラメータ(-1)は何を意味しますか?
data = np.loadtxt('In_file', dtype=np.float, delimiter=',')
x_test, y_test = np.split(data, (-1,), axis=1)
このコード行はデータを2つの部分に分割したものですが、パラメータ(-1)はどういう意味ですか?pythonのパラメータ(-1)は何を意味しますか?
numpy.split(ary, indices_or_sections, axis=0)
Indices_or_sections:intまたは1-Dアレイ indices_or_sectionsは整数、Nである場合には、アレイは、軸に沿ってN等しいアレイに分割されます。このような分割が不可能な場合は、エラーが発生します。 indices_or_sectionsがソートされた整数の1次元配列である場合、エントリは、軸に沿って配列が分割されている場所を示します。 インデックスが軸に沿った配列の次元を超えると、対応する空のサブ配列が返されます。 Source documentation
インデックス0
スプリットタプルの値に列軸に沿ってアレイ上の-1の値を持つタプル。 (-1,)
はそれを2つに分割します。
import numpy as np
x = np.arange(9.0).reshape(3,3)
print x,'\n'
a=np.split(x, (-1,), axis=1)
print a,'\n'
print a[0],'\n'
print a[1],'\n'
出力:多くの場合、
[[ 0. 1. 2.]
[ 3. 4. 5.]
[ 6. 7. 8.]]
[array([[ 0., 1.],
[ 3., 4.],
[ 6., 7.]]), array([[ 2.],
[ 5.],
[ 8.]])]
[[ 0. 1.]
[ 3. 4.]
[ 6. 7.]]
[[ 2.]
[ 5.]
[ 8.]]
、-1
手段、from-the-end
をインデックス。 (-1,)
は1要素タプルです。この文脈で
その意味は、想像することは少し難しいですが、簡単なテストでは、それがより明確になります:
In [304]: x=np.arange(10)
In [305]: np.split(x, (-1,))
Out[305]: [array([0, 1, 2, 3, 4, 5, 6, 7, 8]), array([9])]
それは1つの要素の長さで最後の部分で、配列を分割します。タプル記法で混乱しないでください。それは実際にリストを期待しています。 [-1]
:
In [307]: np.split(x, [-1])
Out[307]: [array([0, 1, 2, 3, 4, 5, 6, 7, 8]), array([9])]
我々は最後の配列の3つの項目、または最初の3つの項目に分割することができます。
In [313]: x[0:3],x[3:-2],x[-2:]
Out[313]: (array([0, 1, 2]), array([3, 4, 5, 6, 7]), array([8, 9]))
:この最後の分割が実際に3つのインデックス範囲で行われる
In [311]: np.split(x, [3,-2])
Out[311]: [array([0, 1, 2]), array([3, 4, 5, 6, 7]), array([8, 9])]
:3つの最初の項目、最後の2で
In [308]: np.split(x, [-3])
Out[308]: [array([0, 1, 2, 3, 4, 5, 6]), array([7, 8, 9])]
In [309]: np.split(x, [3])
Out[309]: [array([0, 1, 2]), array([3, 4, 5, 6, 7, 8, 9])]
または3ウェイ・スプリット、あなたのケースは2次元配列であり、列の分割を行っています。実際にはy_test
が最後の列であり、残りはx_test
です。