在Python中生成3个不同的随机数

2024-04-26 05:27:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的初学者。我想用python3中的numpy.random.randint在指定的范围内生成3组不同的数字。(F.Y.I—>;希望实现K-均值)

我在用这个代码

# Number of clusters
k = 3
# X coordinates of random centroids
C_x = np.random.randint(38.8, 39.4, size=k)
# Y coordinates of random centroids
C_y = np.random.randint(-77.5,-76.5, size=k)
C = np.array(list(zip(C_x, C_y)), dtype=np.float32)
print(C)

但每次迭代都会给我一组相同的值

^{pr2}$

我哪里出错了?在


Tags: of代码gtnumpynumbersizenp数字
2条回答

^{} function整数进行操作;在获取随机值之前,浮点运算被分解为整数。因为第二个值是exclusive,所以每个值只产生一个一个值的范围。

为低值和高值传入整数(并选择更大的范围),或者使用distribution functions中的一个。我想^{} function可以满足你的需要吧?

>>> C_x = np.random.uniform(38.8, 39.4, size=k)
>>> C_y = np.random.uniform(-77.5,-76.5, size=k)
>>> np.array(list(zip(C_x, C_y)), dtype=np.float32)
array([[ 39.04865646, -76.83393097],
       [ 39.06672668, -76.70361328],
       [ 39.35120773, -77.00741577]], dtype=float32)

我用了numpy.random.uniform

# Number of clusters
k = 3
# X coordinates of random centroids
C_x = np.random.uniform(38.8, 39.4, size=k)
# Y coordinates of random centroids
C_y = np.random.uniform(-77.5,-76.5, size=k)
C = np.array(list(zip(C_x, C_y)), dtype=np.float32)
print(C)

而且成功了。

^{pr2}$

相关问题 更多 >