我是python的初学者。我想在python3中使用numpy.random.randint
在指定范围内生成3组不同的数字。 (F.Y.I - >想实施K-Means)
我正在使用此代码
# 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)
但是每次迭代都给我一组相同的值
[[ 38. -77.]
[ 38. -77.]
[ 38. -77.]]
我哪里错了?
答案 0 :(得分:2)
randint()
function对整数进行操作;在获取随机值之前,您的浮点数将浮动到整数。由于第二个值是独占,因此每个值都会产生一系列一个值。
传入整数以获取低值和高值(并选择更大的范围),或使用distribution functions之一。我认为numpy.random.uniform()
function对你的需求很好吗?
new JLabel(new ImageIcon(ImageIO.read(instanceOfMyAwesomeGameObject.getResource("/path/to/resource/ResourceName.png"))));
答案 1 :(得分:1)
我使用了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)
并且有效。
[[ 38.88471603 -77.37638855]
[ 38.99485779 -76.99333954]
[ 38.97389603 -77.27649689]]