I have a boolean matrix in numpy with shape (m, n)
.
I initialize the matrix elements to be False
.
I want to randomly set exactly x
elements in each row (x < n
) with the value True
.
Now I go over the matrix with a loop, using np.random.choice
with no replacement:
mat = np.full((M, N), fill_value=False)
for i in range(mat.shape[0]):
mat[i, np.random.choice(mat.shape[1], x, replace=False)] = True
Is there a more efficient way to do this with numpy
?
Aucun commentaire:
Enregistrer un commentaire