Je dispose d'un fichier csv
avec en-têtes comme:Évite les valeurs exponentielles dans loadtxt
Étant donné ce fichier test.csv
:
"A","B","C","D","E","F","timestamp"
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291111964948
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291113113366
611.88243,9089.5601,5133.0,864.07514,1715.37476,765.22777,1.291120650486
Si, j'utilise load.txt
je reçois le tableau avec 3 lignes et 7 colonnes avec exponential
valeurs.
r1 = numpy.loadtxt(open("test.csv","rb"),delimiter=",",skiprows=1)
Je reçois
[[ 6.11882430e+02 9.08956010e+03 5.13300000e+03 8.64075140e+02
1.71537476e+03 7.65227770e+02 1.29111196e+12]
[ 6.11882430e+02 9.08956010e+03 5.13300000e+03 8.64075140e+02
1.71537476e+03 7.65227770e+02 1.29111311e+12]
[ 6.11882430e+02 9.08956010e+03 5.13300000e+03 8.64075140e+02
1.71537476e+03 7.65227770e+02 1.29112065e+12]]
Pour éviter exponential
je le code suivant, mais encore il donne les mêmes valeurs exponentielles. Mon code pour éviter exponentielle:
r1 = np.loadtxt(open("test.csv","rb"),delimiter=",", dtype=np.float64, skiprows=1)
Est-il possible d'enlever la exponential
tout en créant la matrice de numpy? Je sais que je peux supprimer les valeurs plus tard avec numpy.savetxt(sys.stdout, r1, '%5.2f')
mais je le veux tout en créant la matrice pas après la création.
611,88243 * est * 6.11882430e + 02, compte tenu des problèmes associés à l'arithmétique en virgule flottante). Tu ne veux pas lire dans les valeurs? Sinon, quel genre de résultat * recherchez-vous? Aussi, que voulez-vous faire avec la dernière colonne d'entrée, qui est déjà dans la notation exponentielle (1.291111964948E12)? –
Pourquoi est-ce important? Y a-t-il une différence autre que dans la façon dont ils sont affichés? –
@JoshuaTaylor Voir mon edit, il n'y aura pas de valeur exponentielle dans le fichier csv. – user2481422