0
我有阵列的列表在Python随机分裂阵列的列表在Python
import numpy as np
mylist = [np.random.randint(0, i, int(10)) for i in (10,100,3)]
[array([5, 5, 7, 2, 0, 5, 7, 8, 6, 9]), array([42, 70, 30, 62, 44, 8, 40, 68, 46, 93]), array([0, 0, 0, 0, 0, 1, 2, 0, 1, 2])]
我希望分裂(如果可能随机地)例如在两个列表
list_one = [array([5, 5, 7, 2, 0]), array([42, 70, 30, 62, 44]), array([0, 0, 0, 0, 0])]
list_two = [array([5, 7, 8, 6, 9]), array([8, 40, 68, 46, 93]), array([1, 2, 0, 1, 2])]
或50% 30%和70%
list_one = [array([5, 5, 7]), array([42, 70, 30]), array([0, 0, 0])]
list_two = [array([2, 0, 5, 7, 8, 6, 9]), array([62, 44, 8, 40, 68, 46, 93]), array([0, 0, 1, 2, 0, 1, 2])]
因此,例如,你想随机选择元素的所有元素的50%,并把它们放在一个列表,其余在另一份清单去?这很简单但很乏味。首先使用chain.from_iterable展开列表,然后为每个元素运行random.uniform(0,1),如果结果小于.5,则将其放入第一个列表中,否则将其放入第二个列表中。对于30:70分割,使条件小于.3的第一个列表。对于较难预测的结果,请使用random.SystemRandom()。random()。 – 2015-09-05 04:57:23
你想随机选择一个分割点(也就是将一个数组“剪切”为两个),还是随机选取元素(如Tris Nefzger的评论中所述)?必须在结果列表中数组的大小是否相同(即,list_one的所有元素都必须是相同的长度)? –
嘿家伙,谢谢。如果这不是太困难,我希望或减少(如果更容易,因为它们已经是随机数)了。我正在尝试寻找一种优雅的方式来解决这个乏味的问题 –