我是python新手,有一个基本问题我在网上找不到解决方案。在
我有一张桌子叫IBTsample.txt文件,包含:
我想做的是将它作为numpy数组导入,进行一些处理(目前只是对记录par date进行排序),然后将处理后的表导出到一个新的.txt文件中。在
from numpy import *
import pylab
rawtable = loadtxt('IBTsample.txt', delimiter=',', skiprows=1, converters= {1:pylab.datestr2num},\
dtype={'names':('Season','ISO_time','Latitude','Longitude','Enum'),\
'formats':('uint16','float','float16','float16','uint8')})
sortable = (sort(rawtable, order=('ISO_time'))).copy()
savetxt('IBTsorted.txt', sortable, fmt='%d,%.3f,%.1f,%.1f,%d')
我要用pylab.datestr2num函数在导入期间,但找不到反向函数以ISO格式导出日期和时间。在
任何帮助或想法都是有益的。在
您可以使用
matplotlib.dates.num2date
将num转换回datetime对象。然后调用isoformat()
以ISO-8601格式的字符串形式获取日期。在将
^{pr2}$ISO_time
数据类型转换为object
。这允许列先保存浮点值,然后再保存字符串。注意,astype
(下面)返回一个副本,因此不再需要显式地调用copy
。另外,由于您调用了copy
,我假设在内存中保存两个数组副本不是问题。(如果内存紧张,我们可以使用csv模块逐行编写数组,而不是使用np.savetxt
。但由于内存不是问题,np.savetxt
更方便。)我建议不要使用}时。它覆盖了许多Python内置函数,如
from module import *
,尤其是当module
是{abs
、all
、any
、min
、max
、sum
、round
等。这不仅增加了调用Python内置函数的难度,而且还使编写看起来正确但包含难以发现或细微错误的代码变得容易。在除了@unutbu的答案,如果您使用的是最新版本的numpy(
>= 1.7
),还有一个原生日期数据类型。在在这种情况下,请尝试以下方法:
这就产生了:
^{pr2}$相关问题 更多 >
编程相关推荐