my_array
サイズのnumpy配列があります100x20
。2次元のnumpy配列my_arr
とインデックスx
を入力として受け取り、サイズ1x20
test_arr
と99x20
train_arr
。の2つの配列を返す関数を作成したいと思います。ベクトルtest_arr
はmy_arr
、インデックスx
を持つ行列の行に対応しtrain_arr
、残りの行が含まれます。私はマスキングを使用して解決策をたどろうとしました:
def split_train_test(my_arr, x):
a = np.ma.array(my_arr, mask=False)
a.mask[x, :] = True
a = np.array(a.compressed())
return a
どうやらこれは私が望んでいたように機能していません。結果としてnumpy配列を返し、配列を適切にトレーニングおよびテストするにはどうすればよいですか?
単純なインデックスを使用できますnumpy.delete
。
def split_train_test(my_arr, x):
return np.delete(my_arr, x, 0), my_arr[x:x+1]
my_arr = np.arange(10).reshape(5,2)
train, test = split_train_test(my_arr, 2)
train
#array([[0, 1],
# [2, 3],
# [6, 7],
# [8, 9]])
test
#array([[4, 5]])
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加