Wie ändere ich den Datentyp eines Julia-Arrays von "Any" nach "Float64"?

8

Gibt es in Julia eine Funktion, die eine Kopie eines Arrays in einem gewünschten Typ zurückgibt, dh ein Äquivalent von numpys astype-Funktion ? Ich habe ein Array vom Typ "Any" und möchte es in ein Float-Array konvertieren. Ich habe es versucht:

%Vor%

aber ich bekomme den folgenden Fehler

%Vor%

Ich kann einfach eine Funktion schreiben, die durch das Array geht und einen Gleitkommawert jedes Elements zurückgibt, aber ich finde es etwas seltsam, wenn es dafür keine eingebaute Methode gibt.

    
P4nd4b0b3r1n0 18.02.2016, 13:15
quelle

4 Antworten

11

Verwenden Sie convert . Beachten Sie die Syntax, die ich für das erste Array verwendet habe; Wenn Sie wissen, was Sie wollen, bevor das Array erstellt wird, können Sie den Typ vor den eckigen Klammern deklarieren. Any hätte genauso leicht durch Float64 ersetzt werden können und die convert -Funktion überflüssig gemacht.

%Vor%     
Randy Zwitch 18.02.2016 13:36
quelle
7

Sie können verwenden:

new_array = Array{Float64}(array)

    
Daniel Arndt 18.02.2016 13:24
quelle
1

Die Antworten von Daniel und Randy sind solide, ich werde hier nur einen weiteren Weg hinzufügen, den ich mag, weil er kompliziertere iterative Fälle relativ prägnant machen kann. Allerdings ist es nicht so effizient wie die anderen Antworten, die sich speziell auf die Konvertierung / Typdeklaration beziehen. Aber da die Syntax ziemlich leicht auf andere Anwendungsfälle ausgeweitet werden kann, ist es wert hinzuzufügen:

%Vor%     
Jacob Amos 24.02.2016 20:36
quelle
1

Sie können auch den Broadcast-Operator . :

verwenden %Vor%     
Ian Fiske 16.02.2018 01:12
quelle

Tags und Links