在numpy中给定日期周围生成-1 / +1天

时间:2016-11-22 20:31:01

标签: arrays datetime pandas numpy

考虑下面的一个numpy数组:

import numpy as np
t = np.array(['2016-07-28', '2016-08-25', '2016-09-29', '2016-10-27', '2016-11-17'], dtype='datetime64[D]')

如何为每个数组元素生成前一天和第二天?我想要的输出如下:

array(['2016-07-27', '2016-07-28', '2016-07-29', ..., '2016-11-16',
   '2016-11-17', '2016-11-18'], dtype='datetime64[D]')

我目前的方法是分别生成三个数组(上一个,一天,下一个),然后将它们组合如下:

tt = np.sort(np.append(t1,(t,t2)))

2 个答案:

答案 0 :(得分:6)

Broadcast也在这里!

...something.then(function() {  
        return requestData(url2);
}).then(function() { //called after requestData ended});

紧凑版 -

(t[:,None] + np.arange(-1,2)).ravel()

示例运行 -

(t[:,None] + [-1,0,1]).ravel()

答案 1 :(得分:2)

这个怎么样?

def f(d):
  return (d-np.timedelta64(1,'D'),d,d+np.timedelta64(1,'D'))

import numpy as np
t = np.array(['2016-07-28', '2016-08-25', '2016-09-29', '2016-10-27', '2016-11-17'], dtype='datetime64[D]')
print np.asarray(map(f,t))