如何随机化我的numpy数组中的值?

时间:2017-11-29 12:21:06

标签: python numpy

[[ 208.47   26.  ]
 [ 202.84   17.  ]
 [ 143.37   10.  ]
 ..., 
 [  45.99    3.  ]
 [ 159.31   10.  ]
 [  34.12    4.  ]]
[[ 58.64   1.  ]
 [ 44.31  19.  ]
 [ 37.89  14.  ]
 ..., 
 [ 46.86   4.  ]
 [ 60.73   5.  ]
 [ 41.91   6.  ]]
[[  36.6     4.  ]
 [ 219.29   17.  ]
 [  64.77    5.  ]
 ..., 
 [  51.85   37.  ]
 [ 161.26   10.  ]
 [  53.63   20.  ]]
[[  52.97   32.  ]
 [  51.32    3.  ]
 [ 196.23    4.  ]
 ..., 
 [  41.39    8.  ]
 [  47.49    5.  ]
 [  34.34    3.  ]]

我有这个numpy数组进入我的函数:

def initialize_centroids(points, k):
    """returns k centroids from the initial points"""
    centroids = points.copy()
    np.random.shuffle(centroids)
    print centroids
    return centroids[:k]

现在函数正在做的是,对值进行洗牌并发送它们中的前k个。我想基本上随机化第一列的值在0到300之间,第二列在0到100之间。我该怎么做?

这是我使用Python构建K-Means算法的工作的一部分。

1 个答案:

答案 0 :(得分:0)

正如@kazemakase评论的那样,答案就是使用:

np.random.rand(k, 2) * [300, 100]