Ich habe eine NxN-Matrix mit Nullen gefüllt. Jetzt möchte ich der Matrix sagen, n Einsen und m zwei zu zufälligen Orten. I.e. Ich möchte eine Matrix erstellen, wo es eine bestimmte Menge einer gegebenen Zahl an zufälligen Orten und möglicherweise eine feste Menge einer anderen gegebenen Zahl an zufälligen Orten gibt. Wie mache ich das?Matrix mit gegebenen Zahlen in zufälligen Orten in Python/numpy
In Matlab würde ich dies tun, indem Sie eine zufällige Permutation der Matrixindizes mit randperm() machen und dann die n ersten Indizes, die durch randperm der Matrix gegeben sind, mit Einsen und mnächsten mit Zweien füllen.
Dann können sich "Einsen" und "Zweien" überlappen. Besser zu tun '' random_indices = random.sample (Indizes, n + m); ones = random_indices [: n]; twos = random_indices [n:] ''. Beachten Sie, dass dies Pythons [random.sample] (http://docs.python.org/library/random.html#random.sample) ist, was äquivalent zu [numpy.random.choice] (http: //docs.scipy. org/doc/numpy/Referenz/erzeugt/numpy.random.choice.html # numpy.random.choice); [numpy.random.sample] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.sample.html) macht etwas anderes. –
Stimmt, ich habe diese Möglichkeit nicht angesprochen. Vielen Dank. – phant0m