2016-01-27 54 views
4

仍然相当新numpy的在Python ...我试图建立自己的RINEX数据阵列(见例如):NumPy的数据类型:数据类型不明白

G13 2014 01 02 02 00 00 .440594740212D-04 -.375166564481D-11 .000000000000D+00 
     .290000000000D+02 .705937500000D+02 .382980238378D-08 -.135945866650D+01 
     .353716313839D-05 .509947887622D-02 .137723982334D-04 .515366394615D+04 
     .352800000000D+06 -.819563865662D-07 .312956454846D+01 -.633299350739D-07 
     .979542877504D+00 .129500000000D+03 .219020237787D+01 -.757495838456D-08 
    -.431803700643D-09 .100000000000D+01 .177300000000D+04 .000000000000D+00 
     .240000000000D+01 .000000000000D+00 -.111758708954D-07 .290000000000D+02 
     .345618000000D+06 .400000000000D+01 

我使用用于初始化的矩阵如下代码:

parameter_block_list = np.empty(cs.TOTAL_SATS, cs.RINEX_NAVIGATION_PARAMETERS) * np.NaN 

的问题是在RINEX文件块,其中,每个数用“d”为指数数字的转换。 Numpy有没有办法让数据类型转换适合这种数据格式?我收到的错误是:

TypeError: data type not understood 
+1

如果你用'e'代替'D',它会起作用吗? – tglaria

+1

我认为你有两个不同的问题 - 你看到的错误是你给np.empty的参数的结果,而不是你数据的格式。 –

+1

我觉得'np.empty'需要维度的元组不是吗? 'np.empty((cs.TOTAL_SATS,cs.RINEX_NAVIGATION_PARAMETERS))' – xnx

回答

2

我认为你得到data type not understood的原因是,在通过你的阵列的尺寸empty作为单独的参数,第一个被视为shape和第二作为dtype - 见the docs。也许你的意思是通过shape作为元组:

parameter_block_list = np.empty((cs.TOTAL_SATS, cs.RINEX_NAVIGATION_PARAMETERS)) * np.NaN 
+0

所有评论工作,谢谢你们! :O) – pymat