Pythonisch schreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Ego
User
Beiträge: 2
Registriert: Donnerstag 28. Juni 2018, 03:51

Hallo Leute,

als blutiger Anfänger beim Erwerb dieser eleganten Programmiersprache habe ich ein paar Probleme.
Das schlimmste ist, die Furcht unpythonisch schreiben zu müssen, weil mein Wissen nicht ausreicht.

Konkreter Fall:
Ich habe einen Haufen von integer Zufallszahlen mit numpy erzeugt 0...42

Code: Alles auswählen

import numpy as np

P = np.random.random_integers(0,42,size=43)
print(P)
Dann habe ich die Zahlenreihe ausgewertet.

Code: Alles auswählen

bc  = np.bincount(P)
Zähle ich alle Einzelzahlen durch, bekomme ich eine zufällig variable Länge von bc.
Die möchte ich aber möglichst pythonisch in ein np.Array mit 43 Einheiten umsetzen .

Natürlich könnte ich eine Schleife vom Zaun brechen und das Stück für Stück umpflanzen, aber ist das Python?


Gruss vom Ego
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ich verstehe ehrlich gesagt die Frage nicht... P und bc sind numpy-Arrays. Die Länge von bc ist logischerweise auch 43.

Welche Einzelzahlen willst du durch zählen? Und was bekommst du "nur" unpythonisch hin, was dir NumPy nicht schon direkt pythonisch liefert?

Gruß, noisefloor
Sirius3
User
Beiträge: 17745
Registriert: Sonntag 21. Oktober 2012, 17:20

@noisefloor: wenn zufällig keine 42 in P enthalten ist, dann ist die Länge von bc auch kürzer als 43.

Dafür gibt es aber in der Dokumentation zu bincount eine passende Option. Man muß sie nur nachlesen.

@Ego: Pythonisch wäre es, gute und richtig geschriebene Variablennamen zu verwenden.
Ego
User
Beiträge: 2
Registriert: Donnerstag 28. Juni 2018, 03:51

Vielen Dank für die Antworten.

Durch die sporadisch auftretenden Fehler, weil das Array zufällig zu kurz war, war ich so verdattert, dass ich nicht selbst besser nachgelesen habe.
Der ausgiebige Gebrauch von optionalen Parametern ist mir noch nicht so geläufig.

@Sirius3: Die Variablen benenne ich schon sprechender, wenn sie später noch verwendet werden, bisher leider noch nicht durchgängig mit Kleinbuchstaben beginnend. Ich will mich bessern.

Gruss
Antworten