加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何使用numpy从列表中随机选择n个元素?

发布时间:2020-12-20 11:54:19 所属栏目:Python 来源:网络整理
导读:我有一个向量列表: import numpy as np num_dim,num_data = 10,5 data = np.random.rand(num_data,num_dim) dataarray([[ 0.0498063,0.18659463,0.30563225,0.99681495,0.35692358,0.47759707,0.85755606,0.39373145,0.54677259,0.5168117 ],[ 0.18034536,0
我有一个向量列表:

>>> import numpy as np
>>> num_dim,num_data = 10,5
>>> data = np.random.rand(num_data,num_dim)
>>> data
array([[ 0.0498063,0.18659463,0.30563225,0.99681495,0.35692358,0.47759707,0.85755606,0.39373145,0.54677259,0.5168117 ],[ 0.18034536,0.25935541,0.79718771,0.28604057,0.17165293,0.90277904,0.94016733,0.15689765,0.79758063,0.41250143],[ 0.80716045,0.84998745,0.17893211,0.36206016,0.69604008,0.27249491,0.92570247,0.446499,0.34424945,0.08576628],[ 0.35311449,0.67901964,0.71023927,0.03120829,0.72864953,0.60717032,0.8020118,0.36047207,0.46362718,0.12441942],[ 0.1955419,0.02702753,0.76828842,0.5438226,0.69407709,0.20865243,0.12783666,0.81486189,0.95583274,0.30157658]])

从数据中,我需要随机选择3个向量,我可以用:

>>> import random
>>> random.sample(data,3)
[array([ 0.80716045,0.08576628]),array([ 0.18034536,0.41250143]),array([ 0.35311449,0.12441942])]

我在http://docs.scipy.org/doc/numpy/reference/routines.random.html检查了文档,我无法弄清楚numpy中是否存在random.sample()这样的功能.

numpy.random.sample()与random.sample()不一样吗?

在numpy中是否存在random.sample()的等价性?

解决方法

正如@ayhan所证实的那样,可以这样做:

>>> data[np.random.choice(len(data),size=3,replace=False)]
array([[ 0.80716045,0.30157658]])

从docs:

numpy.random.choice(a,size=None,replace=True,p=None)

Generates a random sample from a given 1-D array

np.random.choice(data,size = 3,replace = False)从数据的索引列表中选择3个元素而不进行替换.

然后data […]对索引进行切片并检索用np.random.choice选择的索引.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读