Ich bin nicht sicher, warum Sie wollen, dass "dieses Array [aussehen?] Wie ein JavaScript-Array, also nehme ich an (wie ich in Ermangelung von gegenteiligen Informationen tun kann), dass Sie wünschen um das Array an einen unglücklichen Front-End-Prozess zu kommunizieren: Fast vier Millionen Elemente sind immer noch eine signifikante Menge an Daten, die über Netzwerk-Pipes hinweg gesplittet werden. Also, wie immer, ein Hintergrund für das Problem wäre hilfreich (und Sie können Ihre Frage bearbeiten, um es bereitzustellen).
Angenommen, Sie möchten die Daten für die Übertragung oder Speicherung serialisieren, dann ist der einfachste Weg, es als String verständlich JavaScript (ich habe nicht wissen, was "[look?] Wie" gemeint) verwendet die json
Standard Bibliothek. Da dies nativ nichts anderes als list und dicts von ints, floats, Wahrheitswerten und Strings codieren kann, steht man immer noch vor dem Problem, wie man die Matrix am besten als eine Liste von Listen darstellt.
Kleines Beispiel, aber Sie müssen akzeptieren, dass dies ein zufälliger Schuss im Dunkeln ist.Erste sich ein überschaubaren Daten erstellen gesetzt, mit arbeiten:
a = np.random.randn(4, 5)
Dies kann nicht direkt in JSON dargestellt werden:
import json
try:
json.dumps(a)
except Exception as e:
print "Exception", e
in den ziemlich ausführlichen resultierenden (es ist wahrscheinlich nur das repr
Objekt aufrufe), aber verständlich und wahre Botschaft
Exception array([[ 1.24064541, 0.97989932, -0.8469167 , -0.27318908, 1.21954134],
[-1.30172725, 0.41261504, 1.39895842, 0.75260258, -1.34749298],
[-0.38415007, -0.56925321, -1.59202204, 1.29900292, 1.91357277],
[ 1.06254537, 2.75700739, -0.66371951, 1.36906192, -0.3973517 ]]) is not JSON serializable
Wenn wir den Dolmetscher fragen sie das Array in eine Liste zu konvertieren es macht einen halbherzig Job, sie in eine Liste von Array-Objekte umzuwandeln:
list(a)
zeigt als Ergebnis
[array([ 1.24064541, 0.97989932, -0.8469167 , -0.27318908, 1.21954134]),
array([-1.30172725, 0.41261504, 1.39895842, 0.75260258, -1.34749298]),
array([-0.38415007, -0.56925321, -1.59202204, 1.29900292, 1.91357277]),
array([ 1.06254537, 2.75700739, -0.66371951, 1.36906192, -0.3973517 ])]
die gleiche Funktion Mit jene Arrays in Listen ergibt sich eine nutzbare Liste von Listen zu konvertieren:
list(list(r) for r in a)
Auswertung zu
[[1.2406454087805279,
0.97989932000522928,
-0.84691669720415574,
-0.27318907894171163,
1.219541337120247],
[-1.3017272505660062,
0.41261503624079976,
1.3989584188044133,
0.75260257672408482,
-1.3474929807527067],
[-0.38415007296182629,
-0.56925320938196644,
-1.5920220380072485,
1.2990029230603588,
1.9135727724853433],
[1.0625453748520415,
2.7570073901625185,
-0.66371950666590918,
1.3690619178580901,
-0.39735169991907082]]
Dies ist zu JSON eminent Cabrio, das ich durch Umwandlung in einen String hier tun:
json.dumps(list(list(r) for r in a))
, die die (string) führen
'[[1.2406454087805279, 0.97989932000522928, -0.84691669720415574, -0.27318907894171163, 1.219541337120247], [-1.3017272505660062, 0.41261503624079976, 1.3989584188044133, 0.75260257672408482, -1.3474929807527067], [-0.38415007296182629, -0.56925320938196644, -1.5920220380072485, 1.2990029230603588, 1.9135727724853433], [1.0625453748520415, 2.7570073901625185, -0.66371950666590918, 1.3690619178580901, -0.39735169991907082]]'
gibt können Sie überprüfen, ob das Ergebnis korrekt ist durch Rekonstruieren der Liste von Listen und Vergleichen mit dem Array (da eines der Argumente ein numpy Array ist, wird der Vergleich elementweise durchgeführt):
s = json.dumps(list(list(r) for r in a))
lofls = json.loads(s)
lofls == a
array([[ True, True, True, True, True],
[ True, True, True, True, True],
[ True, True, True, True, True],
[ True, True, True, True, True]], dtype=bool)
Haben Sie Ihre Frage richtig verstanden?
Was ist Ihre erwartete Zeichenfolge? –