【发布时间】:2015-05-20 05:01:59
【问题描述】:
在我的数据集中,我已经接近 200 行,但是对于最小的工作,例如,让我们假设以下数组:
arr = np.array([[1,2,3,4], [5,6,7,8],
[9,10,11,12], [13,14,15,16],
[17,18,19,20], [21,22,23,24]])
我可以对其中的 3 行进行随机抽样,如下所示:
indexes = np.random.choice(np.arange(arr.shape[0]), int(arr.shape[0]/2), replace=False)
使用这些索引,我可以选择我的测试用例如下:
testing = arr[indexes]
我想删除这些索引处的行,我可以将剩余的元素用于我的训练集。
从here 的帖子看来,training = np.delete(arr, indexes) 应该这样做。但我得到了一维数组。
我也尝试了使用training = arr[indexes.astype(np.bool)] 的建议here,但它没有给出清晰的分离。我在训练和测试集中都得到了元素 [5,6,7,8]。
training = arr[indexes.astype(np.bool)]
testing
Out[101]:
array([[13, 14, 15, 16],
[ 5, 6, 7, 8],
[17, 18, 19, 20]])
training
Out[102]:
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
知道我做错了什么吗?谢谢。
【问题讨论】:
-
别忘了read the docs;文档有您问题的答案。