-1
votes

Comment définir la somme de chaque ligne dans un tableau égal à 1?

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))


6 commentaires

Peuvent-ils les entiers être négatifs? Quelles sont les limites attendues? L'intervalle [1,2) dans votre question ne contient que 1 .


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?


3 Réponses :


-2
votes

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)


2 commentaires

Ce n'est pas vraiment une réponse tbh


Mis à jour pour expliquer



1
votes

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 xxx


0 commentaires

1
votes

"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 xxx

sinon: xxx


0 commentaires