3d随机抽样

时间:2013-09-13 22:27:32

标签: python random numpy points random-sample

我有一组点xyz8,

我想随机获得10%的积分。

然后我想随机获得剩余90%的10%

然后我想随机获得剩余70%的10%

等,直到完成所有要点

我该怎么做呢?

非常感谢任何建议

2 个答案:

答案 0 :(得分:1)

类似的东西:

import random

l = [1,2,3,4]
random.shuffle(l)
while len(l) > 0:
    choice = l[:len(l) / 10]
    l = l[len(l) / 10:]

答案 1 :(得分:1)

我将此解释为你想要将点分成10个相等大小的段。您可以通过改组它们并重新整理列表来完成此操作:

np.random.shuffle(points)
points.shape = (10,-1) + points.shape[1:]

然后,您可以将前10%作为points[0]访问,将第二个作为points[1]访问,等等。

这仍适用于多维数组,因为shuffle只会沿第一轴进行随机播放。