Gibt es einen glatten Weg, um diese Julia-Funktion neu zu schreiben, vielleicht mit nur einer Zeile Code, ohne es viel langsamer zu machen? (Ich habe Julia gerade benutzt. Es ist großartig!)% Co_de% ist eine positive ganze Zahl und K
ist ein Vektor positiver Ganzzahlen, der nicht größer als zd
ist. Danke!
Beispiel:
%Vor%Jede Alternative wird wahrscheinlich nicht schneller sein. Ihre Schleife führt bereits nur einen Durchlauf durch das Array durch. Julia-Schleifen sind schnell und es gibt keinen Geschwindigkeitsvorteil gegenüber vektorisiertem Code, wie es in anderen Sprachen der Fall ist.
Schauen Sie sich Julia's Implementierung der Funktion hist
an. Diese stammt direkt aus der Julia Standard Library :
Der Parameter "edg" enthält die Kanten der Bins. Wenn wir dieses Feature entfernen, erhalten wir genau die Funktion, die Sie geschrieben haben.
Es gibt eine Reihe von Zählfunktionen , die im StatsBase.jl Paket. Ihre Tally-Funktion entspricht counts(zd, 1:K)
.
Es gibt auch Methoden zum Zählen von eindeutigen Elementen anderer Typen als Integer, wie zum Beispiel countmap
, die ein Dictionary zurückgibt, das eindeutige Werte auf die Anzahl der Vorkommen abbildet.
Tags und Links julia-lang