如何正确格式化从文件numpy.genfromtxt()加载的时间?

2024-06-28 12:16:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码:

def parsetime(v): 
    return np.datetime64( 'filename.txt',
                           datetime.datetime.strptime( v, '%H:%M' )
                           )

hor = np.genfromtxt( 'filename.txt',
                      skip_header = 3,
                      usecols     = ( 1, 3, 4, 5, 6, 7, 8, 9 ),
                      converters  = { 1: parsetime }
                      )

明白了:

TypeError: Invalid object for specifying NumPy datetime metadata

数据集:

*****************************************************************************************
 Date__(UT)__HR:MN     Obsrv-lon Obsrv-lat Solar-lon Solar-lat      phi  PAB-LON  PAB-LAT
*****************************************************************************************
 2017-Feb-11 00:00  m    4.87809   1.86737   5.04236   0.27627   1.5995 142.1040  -0.7968
 2017-Feb-11 00:05  m    4.86722   1.86711   5.00023   0.27616   1.5965 142.1233  -0.7972
 2017-Feb-11 00:10  m    4.85641   1.86690   4.95810   0.27604   1.5941 142.1426  -0.7975
 2017-Feb-11 00:11  m    4.85426   1.86686   4.94968   0.27602   1.5937 142.1464  -0.7976
 2017-Feb-11 00:12  m    4.85211   1.86682   4.94125   0.27599   1.5933 142.1503  -0.7977
 2017-Feb-11 00:13  m    4.84997   1.86679   4.93283   0.27597   1.5930 142.1541  -0.7977
 2017-Feb-11 00:14  m    4.84782   1.86676   4.92440   0.27595   1.5926 142.1580  -0.7978

Tags: 代码txtdatetimereturndefnpfilenamefeb
1条回答
网友
1楼 · 发布于 2024-06-28 12:16:39

更好地定义转换器-{}

lambda-s非常适合:

converters  = { 1: lambda aPieceOfSTRING: parsetime( aPieceOfSTRING ),
                }

正如@hpaulj所提倡的那样,更好地解决目前为止只存在于lambdified函数中的错误,最好完全排除它,正如今天早些时候已经显示的in your previous, still un-accepted / un-confirmed, question

 converters  = { 1: lambda aS: datetime.datetime.strptime( aS or "23:59", '%H:%M' ),
                 }      

相关问题 更多 >