にスライスをnumpyの [YXX X ...] [YXX Xを.... ]]ピースバック一緒に元の配列
X_test = data_test[:, 1:]
y_test = data_test[:, 0]
これはうまくいくと思われましたが、その過程でドキュメントが見つかりませんでした。
test_assembled = [:, y_test:X_test]
にスライスをnumpyの [YXX X ...] [YXX Xを.... ]]ピースバック一緒に元の配列
X_test = data_test[:, 1:]
y_test = data_test[:, 0]
これはうまくいくと思われましたが、その過程でドキュメントが見つかりませんでした。
test_assembled = [:, y_test:X_test]
この場合、あなたはnp.c_
を使用することができます。
a = np.identity(4)
x, y = a[:,0], a[:,1:]
np.c_[x,y]
# array([[ 1., 0., 0., 0.],
# [ 0., 1., 0., 0.],
# [ 0., 0., 1., 0.],
# [ 0., 0., 0., 1.]])
np.c_
は、便利なあなたのためa[:,0]
で "行方不明の寸法を" 扱い。 X_test
またはy_test
へ
X_test = data_test[:, 1:]
y_test = data_test[:, 0]
変更により
はdata_test
で見られます。したがって、変更を伝播するために再構成する必要はありません。彼らはviews
です。
np.concatante
(またはその派生物、stack
、c_
など)を使用するアセンブリは、独自のデータバッファを使用して新しい配列を生成します。それはあなたが望むものかもしれません。
X_test
は2dであり、y_test
(スカラーで索引付けされています)は1dですが、この場合、それらを連結するのは難しい部分です。連結することはそれを考慮する必要があります。明示的な方法は、
y_temp = y_test[:,None]
new_data = np.concatenate((y_temp, X_test), axis=1)
np.column_stack
とc_
にあるあなたのためにそのy_temp
ステップを行うことができます便利な機能です。
同じように良いのは、「ブランク」受信機アレイを構築し、同じスライス表記でアレイをコピーすることです。
new_data = np.zeros_like(data_test)
new_data[:, 1:] = X_test
new_data[:,0] = y_test
は、実際には、あなたはdata_test
にその割り当てを行うことができますが、それをする必要はありません。
検証:
In [135]: data_test = np.arange(12).reshape(3,4)
In [136]: data_test
Out[136]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
In [137]: X_test = data_test[:,1:]
In [139]: y_test = data_test[:,0]
In [140]: y_test
Out[140]: array([0, 4, 8])
In [141]: y_test *= 10
In [142]: data_test
Out[142]:
array([[ 0, 1, 2, 3],
[40, 5, 6, 7],
[80, 9, 10, 11]])
In [143]: np.concatenate((y_test[:,None], X_test), axis=1)
Out[143]:
array([[ 0, 1, 2, 3],
[40, 5, 6, 7],
[80, 9, 10, 11]])
In [144]: np.column_stack((y_test, X_test))
Out[144]:
array([[ 0, 1, 2, 3],
[40, 5, 6, 7],
[80, 9, 10, 11]])
In [145]: new = np.zeros_like(data_test)
In [146]: new[:,1:] = X_test
In [147]: new[:,0] = y_test/10
In [148]: new
Out[148]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])