从矩阵中随机选择正实例

时间:2017-03-20 23:24:00

标签: python numpy matrix

我有一个列表<div class="container-1"> <div class="table-col-1"> <div class="border-1"> <div class="table-head-1"> <h1>Issues with OneDrive/ODB on the web?</h1> </div> <div class="text-container"> <p class="table-text">Post and vote on feature suggestions/improvements on UserVoice:</p> <br><a href="#" class="button">OneDrive/ODB web</a> </div> </div> </div> <div class="table-col-1"> <div class="border-1"> <div class="table-head-1"> <h1>Issues with OneDrive/ODB on the web?</h1> </div> <div class="text-container"> <p class="table-text">Post and vote on feature suggestions/improvements on UserVoice:</p> <br><a href="#" class="button">OneDrive/ODB web</a> </div> </div> </div><div class="table-col-1"> <div class="border-1"> <div class="table-head-1"> <h1>Issues with OneDrive/ODB on the web?</h1> </div> <div class="text-container"> <p class="table-text">Post and vote on feature suggestions/improvements on UserVoice:</p> <br><a href="#" class="button">OneDrive/ODB web</a> </div> </div> </div><div class="table-col-1"> <div class="border-1"> <div class="table-head-1"> <h1>Issues with OneDrive/ODB on the web?</h1> </div> <div class="text-container"> <p class="table-text">Post and vote on feature suggestions/improvements on UserVoice:</p> <br><a href="#" class="button">OneDrive/ODB web</a> </div> </div> </div> </div>和一个numpy矩阵y。它们对应即。 Xy[i]相关。 X[i]由1或0组成。我希望从y中随机选择a个数据实例,其中对应的X值等于1,其中y为一个常数。

3 个答案:

答案 0 :(得分:0)

这应该做的工作

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)

答案 1 :(得分:0)

我假设您要在样本中选择 y 为1的整行。您可以绘制 a 行的随机样本,其中相应的 y 值为1,如下所示:

$t2

itertools.compress 用于创建仅包含行的列表,其中相应的 y 为1.然后使用示例函数绘制随机样本该列表中的 a 大小。

答案 2 :(得分:0)

你可以这样做:

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个不同的行。