python add array of hours to datetime
<p>import timedelta as td
I have a date time and I want to add an array of hours to it. </p>

<p>i.e. </p>

<pre><code>Date[0]
datetime.datetime(2011, 1, 1, 0, 0)

Date[0] + td(hours=9)
datetime.datetime(2011, 1, 1, 9, 0)

hrs = [1,2,3,4]
Date[0] + td(hours=hrs)
</code></pre>

<p>But obviously it is not supported.</p>

<p>Date array above is a giant array of size 100X1 and I want to add hrs = [1,2,3,4] to each row of Date to get a datetime array of size 100x4. So, a for loop is not going to work in my case.</p>

<p>Use a nested <em>list comprehension</em> and <a href="https://docs.python.org/2/library/datetime.html#datetime.datetime.replace" rel="nofollow"><code>.replace()</code> method</a>. Sample for a list with 2 datetimes:</p>

<pre><code>In [1]: from datetime import datetime

In [2]: l = [datetime(2011, 1, 1, 0, 0), datetime(2012, 1, 1, 0, 0)]

In [3]: hours = [1, 2, 3, 4]

In [4]: [[item.replace(hour=hour) for hour in hours] for item in l]
Out[4]: 
[[datetime.datetime(2011, 1, 1, 1, 0),
  datetime.datetime(2011, 1, 1, 2, 0),
  datetime.datetime(2011, 1, 1, 3, 0),
  datetime.datetime(2011, 1, 1, 4, 0)],
 [datetime.datetime(2012, 1, 1, 1, 0),
  datetime.datetime(2012, 1, 1, 2, 0),
  datetime.datetime(2012, 1, 1, 3, 0),
  datetime.datetime(2012, 1, 1, 4, 0)]]
</code></pre>

<p>As a result a 2x4 list of lists.</p>

python datetime