Ich führe Python 3.5 und versuche, eine große Zeichenfolge in ein numpy Array zu konvertieren.Auswerten komplexer Ausdrücke mit ast.literal_eval()
Ich habe die answer from stack overflow verwendet, um diesen Code zusammen zu setzen.
import ast
import numpy as np
str = '["8.4","4.3E-7"]'
arr = ast.literal_eval(str)
x = np.array(arr, dtype='|S4')
y = x.astype(np.float32)
Ich erhalte die folllowing Wert Fehler
ValueError: could not convert string to float: '4.3E'
str ist ein Beispiel Zeichenfolge, die meisten der Zahlen haben E-etwas-Muster nicht, aber gelegentlich dies geschieht, und mein Code auflegt.
Gibt es eine Möglichkeit, in diesem Fall eine Zeichenfolge in ein numpy Array zu konvertieren?
'| S4' ist eine maximale Länge von 4 Zeichen. Du hast nicht genug Platz gegeben. – user2357112
Sie müssen den dtype jedoch überhaupt nicht angeben. Es wird für dich abgeleitet werden. (Ich werde diese andere Antwort bearbeiten, um Dinge zu klären.) – user2357112
@ user2357112 Wenn Sie nur eine Antwort posten, kann ich offiziell akzeptieren akzeptieren. Danke für die Antwort ... es stellt sich heraus, dass es eine Menge zu lernen gibt von dieser Community :) – akhileshsk