Python 我想通过10列170行循环选择5个随机数
我有一个数组数据集(10170)的形状Python 我想通过10列170行循环选择5个随机数,python,pandas,random,Python,Pandas,Random,我有一个数组数据集(10170)的形状 Name: id_matrix array([[ 1, 171, 341, ..., 1191, 1361, 1531], [ 2, 172, 342, ..., 1192, 1362, 1532], [ 3, 173, 343, ..., 1193, 1363, 1533], ..., [ 168, 338, 508, ..., 1358, 1528, 1698],
Name: id_matrix
array([[ 1, 171, 341, ..., 1191, 1361, 1531],
[ 2, 172, 342, ..., 1192, 1362, 1532],
[ 3, 173, 343, ..., 1193, 1363, 1533],
...,
[ 168, 338, 508, ..., 1358, 1528, 1698],
[ 169, 339, 509, ..., 1359, 1529, 1699],
[ 170, 340, 510, ..., 1360, 1530, 1700]])
我想循环遍历170列中的每一列,每列也包含170个数字,然后随机选择5个数字。然后我将把它们作为一个组打印到屏幕上,在这个提纲中,当代码正常工作时,我将能够相应地进行格式化
Group 1: [ 92 73 139 54 147]
Group 2: [182 333 219 292 214]
我还需要设置一个np.random.seed(489)来保持复制和可重复性。
我试图捕捉这些价值观,却陷入了困境
col=0
data=[row[col] for row in id_matrix]
print(data)
或此版本:
import pandas as pd
df[df.columns.to_series().sample(5)]
这些方法看起来都不像我想要的。。。我运行了谷歌搜索,但似乎找不到任何线索来说明如何生成循环,我需要从这些列创建随机集
请根据您的意见建议…我的解决方案:
for i in range(10):
random.seed(436)
sampling = random.sample(set(id_matrix[:,i]), k=5)
print("Group {}: {}".format(i+1, sampling))
也许可以提供一些指导?我会使用
np.random.randint
生成5个随机索引值,然后使用它们索引到数组中。不过要澄清一点:您有10行170列,而[9,9]
处的值(例如)本身将是170个数字的子列表?