gpt4 book ai didi

python - 根据百分比水平拆分 2D numpy 数组

转载 作者:行者123 更新时间:2023-11-28 17:58:46 25 4
gpt4 key购买 nike

我希望能够将 2D numpy 水平 分成两部分(80% 和 20%)。我试过使用 np.vsplit() 但它似乎不是为这种情况而设计的。例如,假设我有以下大小矩阵 (6,3)。我想将它水平拆分为 80% 和 20% [大致为 (5,3), (1,3)],所以我尝试了这样的操作:

M = [[1,2,3],[4,5,6],[7,8,9], [10,11,12], [77,54,11], [424,78,98]]
M = np.asarray(M)
arr1 = np.vsplit(M, int(M.shape[0]* 0.8))[0] # 80% of data goes to arr1
arr2 = np.vsplit(M, int(M.shape[0]* 0.2))[1] # 20% of data goes to arr2

我知道这个尝试是不正确的,但我无法修复它(实际上还在学习 python)。如果有人可以帮助修改此代码,请提供帮助。谢谢

最佳答案

您可以使用索引(或使用 train_test_split )这样做:

M = [[1,2,3],[4,5,6],[7,8,9], [10,11,12], [77,54,11], [424,78,98]]
M = np.asarray(M)

split_horizontally_idx = int(M.shape[0]* 0.8) # integer for line selection (horizontal selection)

array1 = M[:split_horizontally_idx , :] # indexing/selection of the 80%
array2 = M[split_horizontally_idx: , :] # indexing/selection of the remaining 20%

关于python - 根据百分比水平拆分 2D numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56888063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com