首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从矩阵中随机选择正实例

从矩阵中随机选择正实例
EN

Stack Overflow用户
提问于 2017-03-21 07:24:00
回答 3查看 42关注 0票数 0

我有一个列表y和一个numpy矩阵X。它们对应的是。y[i]X[i]相关。y由1或0组成。我希望从X中随机选择a数据实例,其中对应的y值等于1,其中a是常量。

EN

回答 3

Stack Overflow用户

发布于 2017-03-21 07:32:56

这个应该就行了

代码语言:javascript
运行
复制
import numpy as np

array = [1,2,3,4]
number = np.random.choice(array, replace = False)
print(number)
idx =  np.where(array==number)[0]
print(idx)
票数 0
EN

Stack Overflow用户

发布于 2017-03-21 07:34:27

我假设您希望选择样本中y为1的整行。您可以随机抽取对应y值为1的行,如下所示:

代码语言:javascript
运行
复制
import numpy as np
from itertools import compress
from random import sample

a = 2
y = [0, 1, 1, 0, 1, 0, 1, 0, 1, 1]
X = np.random.rand(10, 3)

picked = sample(list(compress(X, y)), a)

itertools.compress用于创建一个只包含行的列表,其中对应的y是1。然后使用sample函数从该列表中随机抽取大小为a的样本。

票数 0
EN

Stack Overflow用户

发布于 2017-03-21 07:37:25

你可以这样做:

代码语言:javascript
运行
复制
import numpy as np
X=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]])
y=np.array([1,0,1,1,0])
a=2
mat=X[y==1]
rows = np.random.choice(len(mat), size=a,replace=False)
mat=mat[rows,:]
print(mat)
[[ 7  8  9]
[10 11 12]]

在上面的代码中,mat=X[y==1]选择y的对应值为1的所有行,然后np.random.choice(len(mat), size=a,replace=False)随机选择a不同的行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42915776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档