Python:从数据帧中随机获取10个值
我正试图建立一个算法来寻找集群的数量。我需要从数据集中指定随机点作为初始平均值 我首先尝试了以下代码:Python:从数据帧中随机获取10个值,python,pandas,numpy,random,Python,Pandas,Numpy,Random,我正试图建立一个算法来寻找集群的数量。我需要从数据集中指定随机点作为初始平均值 我首先尝试了以下代码: mu=random.sample(df,10) 它给出了索引超出范围的错误 我将其转换为numpy数组,然后 mu=random.sample(np.array(df).tolist(),10) 它不是给10个值,而是给我10个值数组 如何从数据帧中获取10个值作为10个集群的平均值进行初始化?我认为您需要: 样本: np.random.seed(100) df = pd.DataFra
mu=random.sample(df,10)
它给出了索引超出范围的错误
我将其转换为numpy数组,然后
mu=random.sample(np.array(df).tolist(),10)
它不是给10个值,而是给我10个值数组
如何从数据帧中获取10个值作为10个集群的平均值进行初始化?我认为您需要:
样本:
np.random.seed(100)
df = pd.DataFrame(np.random.randint(10, size=(20,3)), columns=list('abc'))
print (df)
a b c
0 8 8 3
1 7 7 0
2 4 2 5
3 2 2 2
4 1 0 8
5 4 0 9
6 6 2 4
7 1 5 3
8 4 4 3
9 7 1 1
10 7 7 0
11 2 9 9
12 3 2 5
13 8 1 0
14 7 6 2
15 0 8 2
16 5 1 8
17 1 5 4
18 2 8 3
19 5 0 9
我认为你需要:
样本:
np.random.seed(100)
df = pd.DataFrame(np.random.randint(10, size=(20,3)), columns=list('abc'))
print (df)
a b c
0 8 8 3
1 7 7 0
2 4 2 5
3 2 2 2
4 1 0 8
5 4 0 9
6 6 2 4
7 1 5 3
8 4 4 3
9 7 1 1
10 7 7 0
11 2 9 9
12 3 2 5
13 8 1 0
14 7 6 2
15 0 8 2
16 5 1 8
17 1 5 4
18 2 8 3
19 5 0 9
使用numpy.random.choice
或者numpy.random.permutation
使用numpy.random.choice
或者numpy.random.permutation
mu = df.sample(10)
print (mu)
a b c
11 2 9 9
1 7 7 0
8 4 4 3
5 4 0 9
2 4 2 5
19 5 0 9
13 8 1 0
14 7 6 2
0 8 8 3
9 7 1 1
df.iloc[np.random.choice(np.arange(len(df)), 10, False)]
df.loc[np.random.permutation(df.index)[:10]]
a b c
11 2 9 9
1 7 7 0
16 5 1 8
15 0 8 2
17 1 5 4
19 5 0 9
10 7 7 0
8 4 4 3
6 6 2 4
14 7 6 2