首页 > 解决方案 > 在一个数组中组合数组

问题描述

我目前正在尝试根据 k、簇数以及 xlim 和 ylim 作为要输入的边界的选择来生成随机数据集。我希望我的输出如下:

[array([11.7282981 ,  6.89656728],
        [ 9.88391172,  5.83611126],
        [7.45631652, 7.88674093],
        [8.38232831, 7.82884638])

此代码用于 k 意味着项目

这是我的尝试。首先,我创建一个簇中心,它是在 0 到 xlimit 和输入的 ylimit 之间的范围内随机生成的。然后我在集群中心周围创建 2 个(在本例中为 2,但我将做 100 个)随机点,并带有噪声:

k = 2
xlim = 12
ylim = 12

f = []
for x in range(0,k):
    
    clusterCenter = [random.randint(0,xlim),random.randint(0,ylim)]
    cluster = np.random.randn(2, 2) + clusterCenter
    f.append(cluster)

f

不幸的是,输出结果是:

[array([[11.7282981 ,  6.89656728],
        [ 9.88391172,  5.83611126]]),
 array([[7.45631652, 7.88674093],
        [8.38232831, 7.82884638]])]

这不是我想要的,因为我想把它放到熊猫数据框中。谁能帮忙?

数字会大得多,我已经做到了,生成的集群将是一组 2 x 和 y 坐标,但理想情况下希望:

    cluster = np.random.randn(100, 2) + clusterCenter

所以请考虑到这一点!任何帮助将不胜感激!

标签: pythonarraysdataframemerge

解决方案


替换f.append(cluster)为:

f = None # instead of []
...
    if f is None:
        f = cluster
    else:        
        f = np.concatenate( (f, cluster) )

推荐阅读