我对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')])

08-24 21:39