2016-03-21 15 views
0

:Yükleme dizisi dosyası Ben numaralar aşağıdaki formda olduğu bir dosyayı yüklemeye çalışıyorum

0.0000000D+00 -0.1145210D-16 0.1262408D-16 
    0.1000000D+00 -0.4697286D-06 0.1055963D-06 
    0.2000000D+00 -0.1877806D-05 0.4220493D-06 
    0.3000000D+00 -0.4220824D-05 0.9482985D-06 

Ben numpy.loadtext fonksiyonunu çalışıyorum, ancak görünüşe göre onun tanınan içinde değil

ValueError: yüzer dizeyi dönüştürmek olamazdı: b'0.0000000D + 00'

herhangi bir fikir aşağıdaki hatayı alıyorum olarak numaralandırma biçimini?

Teşekkür

+0

Ben tanıdık değilim, ama ondalık için değil, D Float? –

+0

hangi dili kullanıyorsunuz? – saravanakumar

+0

Python. Bu atama, 0.0000000E + 00 -0.1145210E-16 0.1262408E-16 eşdeğeridir. –

cevap

0

Bir ayrıştırılamaz şamandıraya değerini dönüştürür numpy.loadtxt bir dönüştürücü kullanabilirsiniz. Bu durumda D'u E ile önemsiz bir şekilde değiştiriyoruz;

import numpy as np 

numconv = lambda x : str.replace(x.decode('utf-8'), 'D', 'E') 
np.loadtxt('test.txt', converters={0:numconv, 1:numconv, 2:numconv}, dtype='double') 

# array([[ 0.00000000e+00, -1.14521000e-17, 1.26240800e-17], 
#  [ 1.00000000e-01, -4.69728600e-07, 1.05596300e-07], 
#  [ 2.00000000e-01, -1.87780600e-06, 4.22049300e-07], 
#  [ 3.00000000e-01, -4.22082400e-06, 9.48298500e-07]]) 
İlgili konular