在 Python 中创建 int 和 DateTime 列表



我如何在python中创建一个列表(或numpy数组,如果可能的话),该列表在第一列中使用datetime对象,在其他列中使用其他数据类型?

例如,列表应该是这样的:

list = [[<datetime object>, 0, 0.]
        [<datetime object>, 0, 0.]
        [<datetime object>, 0, 0.]]
像这样创建和初始化list的最好方法是什么?到目前为止,我已经尝试使用np.empty, np.zeros和列表推导,类似于:
list = [[None for x in xrange(3)] for x in xrange(3)]

但是如果我这样做,我将需要一个for loop来填充第一列,并且似乎没有一种方法可以像下面这样以更简单的方式分配它:

list[0][:] = another_list_same_length

你的意思是:

In [17]: import numpy as np
In [18]: np.array([[[datetime.now(),np.zeros(2)] for x in range(10)]])
Out[18]: 
array([[[datetime.datetime(2014, 8, 7, 23, 45, 12, 151489),
         array([ 0.,  0.])],
        [datetime.datetime(2014, 8, 7, 23, 45, 12, 151560),
         array([ 0.,  0.])],
        [datetime.datetime(2014, 8, 7, 23, 45, 12, 151595),
         array([ 0.,  0.])],
        [datetime.datetime(2014, 8, 7, 23, 45, 12, 151619),
         array([ 0.,  0.])],
        [datetime.datetime(2014, 8, 7, 23, 45, 12, 151634),
         array([ 0.,  0.])],
        [datetime.datetime(2014, 8, 7, 23, 45, 12, 151648),
         array([ 0.,  0.])],
        [datetime.datetime(2014, 8, 7, 23, 45, 12, 151662),
         array([ 0.,  0.])],
        [datetime.datetime(2014, 8, 7, 23, 45, 12, 151677),
         array([ 0.,  0.])],
        [datetime.datetime(2014, 8, 7, 23, 45, 12, 151691),
         array([ 0.,  0.])],
        [datetime.datetime(2014, 8, 7, 23, 45, 12, 151706),
         array([ 0.,  0.])]]], dtype=object)

使用zip

>>> column1 = [1, 1, 1]
>>> column2 = [2, 2, 2]
>>> column3 = [3, 3, 3]
>>> zip(column1, column2, column3)
[(1, 2, 3), (1, 2, 3), (1, 2, 3)]
>>> # Or, if you'd like a list of lists:
... 
>>> [list(tup) for tup in zip(column1, column2, column3)]
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
>>> 

这将允许您单独构建列,然后组合它们。column1可以是日期(或者其他任何东西)

最新更新