如何切片Numpy datetime64数组

时间:2016-06-22 13:10:10

标签: python arrays datetime numpy

我有一个带2个数组的python zip

zipped = zip(array1 [],array2 [])

其中array1的类型为numpy.datetime64 [] adn,array2是温度

我想在第一个数组中创建一个时间窗口,所以我可以使用固定数组len(因为我有其他的压缩数组,但它们的数组长度不同)

这就是我所拥有的:

start = np.datetime64('2016-06-17T15:00')
stop = np.datetime64('2016-06-19T15:00')

index, temp = sensor_cal.get_arrays('ParsedData/parsed.csv')
print(index)
print(temp)
index2 = index[start:stop] /////////////This doesn't work
print(index2)

我如何定义这样的时间窗口.... 我的目标是在同一时间窗口中获得相同长度的数组(因为它们之前是频率标准化的),然后制作一个图表,其中xAxis是时间,各个系列对应于多个温度传感器阵列

我的错误:

  

[' 2016-06-17T13:23:59.000000000' ' 2016-06-17T13:24:59.000000000' ' 2016-06-17T13:25:59.000000000' ...,' 2016-06-20T09:55:59.000000000'   ' 2016-06-20T09:56:59.000000000' ' 2016-06-20T09:57:59.000000000'] [[
  nan [nan] [nan] ...,[25.54] [   25.56333333] [25.59333333]]回溯(最近一次调用最后一次):文件" main_cal.py",第10行,在       index [start:stop] IndexError:无法强制将numpy.datetime64类型的切片条目强制转换为整数

1 个答案:

答案 0 :(得分:1)

您可以使用专为此设计的pandas索引。 '系列'是附加索引的1d数组。参考Wes McKinney的Python数据分析:

import pandas as pd
temp = np.random.randn(366)
time_series = pd.Series(temp,index=np.arange(np.datetime64('2015-12-19'),np.datetime64('2016-12-19')))

start = np.datetime64('2016-01-17T15:00')
stop = np.datetime64('2016-06-19T15:00')
time_series[start:stop]

输出:

2016-01-18   -0.690170
2016-01-19   -0.638598
2016-01-20    0.231680
2016-01-21   -0.202787
2016-01-22   -1.333620
2016-01-23    1.525161
2016-01-24   -0.908140
2016-01-25    0.493663
2016-01-26   -1.768979
2016-01-27    0.147327
...