我对numpy比较陌生。我已经从.csv文件中导入了数据,其中的日期来自YYYY,MM,DD等。我想将所有内容放入一个数组,日期以“适当的”日期时间格式。这是我的代码:
na_trades = np.zeros((number_of_orders,), dtype = ('datetime64,a5,a5,i4'))
for row in range(number_of_orders):
order = na_trades_csv[row]
order_date = dt.datetime(order[0],order[1],order[2])
order_date64 = np.datetime64(order_date)
na_trades[row] = (order_date64,order[3],order[4],order[5])
但是我收到错误
ValueError: error setting an array element with a sequence
。知道为什么吗?预先感谢您的帮助! 最佳答案
使用numpy版本1.6.2时,dtype = 'datetime64,a5,a5,i4'
不会导致预期的dtype:
In [36]: na_trades = np.zeros((number_of_orders,), dtype = 'datetime64,a5,a5,i4')
In [37]: na_trades
Out[37]: array([1970-01-01 00:00:00], dtype=datetime64[us])
对我来说,这看起来像个虫子-尽管我可能是错的。请尝试:
na_trades = np.empty(number_of_orders,
dtype = [
('dt', 'datetime64'),
('foo','a5'),
('bar', 'a5'),
('baz', 'i4')])