我正在学习Python,请多多包涵。我一直在尝试将一个datetime变量放入numpy数组中,但是一直无法弄清楚如何实现。后面我需要计算每个索引的时间差异,因此我不知道是否应该将datetime变量放入数组中,还是将其转换为另一种数据类型。我遇到了以下错误:
'NoneType' object does not support item assignment
我的dtype变量是否被正确构建了? 这里 没有提到datetime类型。
import numpy as np
from liblas import file
f = file.File(project_file, mode = 'r')
num_points = int(f.__len())
# dtype should be [float, float, float, int, int, datetime]
dt = [('x', 'f4'), ('y', 'f4'), ('z', 'f4'), ('i', 'u2'), ('c', 'u1'), ('time', 'datetime64')]
xyzict = np.empty(shape=(num_points, 6), dtype = dt)
# Load all points into numpy array
counter = 0
for p in f:
newrow = [p.x, p.y, p.z, p.i, p.c, p.time]
xyzict[counter] = newrow
counter += 1
感谢您的提前帮助。
编辑:我应该注意到,在继续之前我计划按日期对数组进行排序。 p.time 的格式如下:
>>>p.time
datetime.datetime(1971, 6, 26, 19, 37, 12, 713269)
>>>str(p.time)
'1971-06-26 19:37:12.713275'
project_file
的前几行以供查看?可能有更好的方法来解决这个问题,但这取决于日期格式等其他因素。 - askewchannewrow
做成元组而非列表。 - askewchan