【发布时间】:2020-08-11 20:37:16
【问题描述】:
问题设置:
-
points- 长度为N的二维numpy.array。 -
centroids- 2Dnumpy.array作为K-Means算法的输出,长度为kN。 - 作为
MLE算法的质心初始化例程,我想为points中的每个点分配来自centroids的随机质心。
所需输出:
- 一个形状为 (N, 2) 的
numpy.array,由centroids中随机选择的二维点组成
我的努力:
- 我已尝试将
numpy.take与numpy.random.choice一起使用,如Code 1所示,但它没有返回所需的输出。
代码 1:
import numpy as np
a = np.random.randint(1, 10, 10).reshape((5, 2))
idx = np.random.choice(5, 20)
np.take(a, idx)
Out: array([6, 2, 3, 3, 8, 2, 5, 2, 6, 3, 3, 8, 6, 6, 6, 6, 8, 2, 6, 5])
从numpy.take documentation page 我了解到它从扁平数组中选择项目,这不是我需要的。
如果有任何关于如何完成这项任务的想法,我将不胜感激。提前感谢您的帮助。
【问题讨论】:
标签: python python-3.x numpy numpy-ndarray