创建一个int&列表Python中的DateTime

时间:2014-08-07 22:34:02

标签: python datetime numpy

如何在python中创建一个列表(如果可能的话,还是一个numpy数组),它在第一列中包含datetime个对象,在其他列中包含其他数据类型?

例如,列表将是这样的:

list = [[<datetime object>, 0, 0.]
        [<datetime object>, 0, 0.]
        [<datetime object>, 0, 0.]]

创建和初始化这样的列表的最佳方法是什么?

到目前为止,我已尝试使用np.emptynp.zeros和列表理解,类似于:

list = [[None for x in xrange(3)] for x in xrange(3)]

但是,如果我这样做,我需要for loop来填充第一列,似乎没有办法以更简单的方式分配它,如下所示:

list[0][:] = another_list_same_length

2 个答案:

答案 0 :(得分:2)

你的意思是:

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)

答案 1 :(得分:1)

使用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可以是日期(或其他任何内容。)

希望这有帮助。