Seite 1 von 1

random.randint mit anderem Mittelwert konstruieren

Verfasst: Dienstag 9. Juli 2013, 23:28
von tm.toni
Moin Leute,
bitte helft mir mit meinem Problem:
Ich möchte eine nxn-Matrix mit "zufälligen" Werten +/-1 erzeugen und den Mittelwert vorgeben.
Bis jetzt habe ich:

Code: Alles auswählen

from numpy import * 
from numpy import random as rn
mittelwert = 0.8
n = 50
matr = (rn.randint(0, 2, [n,n])*2-1+mittelwert)
mittelwert = mean(matr)
matr = sign(matr)
mittelwert2 = mean(matr)
print matr
print mittelwert, mittelwert2
Ich hoffe es kann mir jemand helfen.
Viele Grüße
Toni

Re: random.randint mit anderem Mittelwert konstruieren

Verfasst: Mittwoch 10. Juli 2013, 07:19
von Sirius3
@tm.toni:Du rechnest einfach die Anzahl der -1 und 1 aus, damit Du auf Deinen Mittelwert kommst und verteilst diese Zahlen dann in der Matrix

Code: Alles auswählen

import numpy
mittelwert = 0.8
n = 50
anzahl_einsen = int(0.5*(mittelwert+1)*n*n)
matrix = numpy.array([1]*anzahl_einsen+[-1]*(n*n-anzahl_einsen))
numpy.random.shuffle(matrix)
matrix = matrix.reshape(n,n)

Re: random.randint mit anderem Mittelwert konstruieren

Verfasst: Mittwoch 10. Juli 2013, 10:06
von tm.toni
@Sirius3: Vielen Dank für die gute und schnelle Antwort. Es funktioniert wie gewünscht!