【发布时间】:2021-02-09 11:18:58
【问题描述】:
无论如何,我可以将一个数组分成 3 个不相等的部分,例如,没有重复项
array1 = 数组元素的 70%
array2 = 数组元素的 10%
array3 = 数组元素的 20%
但没有两次取同一个元素?
谢谢!
【问题讨论】:
标签: python-3.x numpy random
无论如何,我可以将一个数组分成 3 个不相等的部分,例如,没有重复项
array1 = 数组元素的 70%
array2 = 数组元素的 10%
array3 = 数组元素的 20%
但没有两次取同一个元素?
谢谢!
【问题讨论】:
标签: python-3.x numpy random
如果您可以接受丢失数组的原始顺序,您可以简单地随机打乱数组,然后根据需要拆分数组。
a = np.arange(100) # Example array.
split1 = int(0.7 * len(a))
split2 = int(0.8 * len(a))
np.random.shuffle(a)
p1 = a[:split1]
p2 = a[split1:split2]
p3 = a[split2:]
如果必须保留数组的顺序(我们称之为b),可以使用a = np.arange(len(b))进行上述操作,然后:
np.sort(p1)
np.sort(p2)
np.sort(p3)
bp1 = b[p1]
bp2 = b[p2]
bp3 = b[p3]
【讨论】: