time.strptime()
ожидает строку, такую как '2013-12-11 23:00:30.003310'
, но вы даете ей строковое представление массива:
['2013-12-12 00:00:02.251311', '2013-12-12 00:00:03.255296', ...]
Минимальное исправление заключается в анализе одного элемента за раз:
ts = [time.strptime(s, '%Y-%m-%d %H:%M:%S.%f') for s in wind[:,0]]
Или вы можете использовать параметр converters
для loadtxt
:
from datetime import datetime
import numpy as np
def str2timestamp(timestr, epoch=datetime.fromtimestamp(0)):
"""Convert local time string into seconds since epoch (float)."""
# np.datetime64 API is experimental so use datetime instead
#NOTE: local time may be ambiguous, non-monotonous
dt = datetime.strptime(timestr, '%Y-%m-%d %H:%M:%S.%f')
return (dt - epoch).total_seconds()
wind = np.loadtxt('input.csv', usecols=(0, 4), delimiter=',',
converters={0: str2timestamp})
print(wind)
[[ 1.38679203e+09 5.80000000e+00]
[ 1.38679203e+09 5.50000000e+00]
[ 1.38679203e+09 4.00000000e+00]
[ 1.38679203e+09 4.90000000e+00]]