J'ai écrit un code pour remplir une matrice avec 0 ou 1 au hasard. Mais cela s'est terminé en 4-5 lignes. Je veux qu'il soit sur 1 ligne.
pop_size = (8,10)
initial_pop = np.empty((pop_size))
for i in range(pop_size[0]):
for j in range(pop_size[1]):
initial_pop[i][j] = rd.randint(0,1)
5 Réponses :
Je comprends que vous utilisez NumPy . Si tel est le cas, la réponse est:
np.random.randint(2, size=pop_size)
Voici l'article de NumPy docs sur cette routine: LIEN . Numpy est bien documenté, la prochaine fois, essayez de vérifier les documents vous-même.
edit: l'argument doit être 2, pas 1
Avoir 1 ne fonctionnera pas. Doit être 2 pour le premier argument. Sinon, vous obtiendrez des 0 partout.
@hqkhan vous avez raison. C'est incompatible avec random.randint de python dont la limite supérieure est inclusive.
En Python standard, essayez:
from random import randint x = [[randint(0,1) for _ in range(8)] for _ in range(10)]
Utilisez la méthode randint de numpy
matrix = np.random.randint(2, size=pop_size)
Découvrez la réponse sur: Un moyen simple de créer une matrice aléatoire nombres
vous pouvez facilement remplir une matrice en utilisant numPy.
par exemple:
matrice 3x3:
import numpy as np
my_matrix = np.random.randint(2,size=3)
output = ([[0,1,0],
[0,0,1],
[1,0,1]])
documentation: https: //docs.scipy.org/doc/numpy/reference/generated/numpy.random.randint.html?highlight=randint#numpy.random.randint
Si vous voulez avoir seulement 1 ou 0 dans votre tableau, vous pouvez le faire en suivant.
import numpy as np
np.zeros(2,2) #it will create [2,2] matrix with all zeros
np.ones(2,2) #it will create [2,2] matrix with all ones
Pouvez-vous expliquer plus clairement, sans comprendre votre question?
np.random.randint ()? docs.scipy.org/doc/ numpy-1.15.0 / reference / generated /…Utilisez randint
np.random.randint (2, (8, 10))