Je ne sais pas si j'ai besoin d'une boucle pour que chaque rangée soit égale à 1? J'essaie de créer un tableau en deux dimensions avec des entiers aléatoires où la somme de chaque ligne est 1.
import numpy as np a = np.random.randint(1,2, size = (13,17))
3 Réponses :
Si vous voulez des chiffres positifs (non des entiers), créez votre matrice comme des nombres aléatoires compris entre 0 et 1 et normaliser chaque ligne:
a = np.random.rand(17,12) a = a/np.linalg.norm(a, ord=2, axis=1, keepdims=True)
Ce n'est pas vraiment une réponse tbh
Mis à jour pour expliquer
Le seul moyen d'obtenir une gamme 2D de nombres entiers positifs avec des lignes que la somme à 1 est si chaque ligne contient toutes les zéros et une seule. Cela pourrait être fait en utilisant quelque chose comme celui-ci
"Créez une gamme bidimensionnelle, 13 par 17 d'entrées aléatoires et positives telles que la somme de chaque ligne est de 1."
Si les entrées doivent être entièrement entières dans votre question, alors p > sinon: p>
Peuvent-ils les entiers être négatifs? Quelles sont les limites attendues? L'intervalle
[1,2) code> dans votre question ne contient que1 code>.Diviser chaque colonne par la norme 1
Les entiers ne peuvent être que positifs; et la question complète est de "créer une gamme bidimensionnelle, 13 by 17 d'entrées aléatoires et positives telles que la somme de chaque ligne est 1."
Si les entiers sont positifs, chaque ligne contiendra 12 zéros et 1 un.
Diviser chaque ligne par sa somme.
Dans la question complète, il dit "des entrées aléatoires et positives", pas les entiers non nécessaires comme vous l'avez écrit?