Time for action – using the datetime64 data type

The datetime64 data type was introduced in NumPy 1.7.0 (see http://docs.scipy.org/doc/numpy/reference/arrays.datetime.html).

  1. To learn about the datetime64 data type, start a Python shell and import NumPy as follows:
    $ python
    >>> import numpy as np
    

    Create a datetime64 from a string (you can use another date if you like):

    >>> np.datetime64('2015-04-22')
    numpy.datetime64('2015-04-22')
    

    In the preceding code, we created a datetime64 for April 22, 2015, which happens to be Earth Day. We used the YYYY-MM-DD format, where Y corresponds to the year, M corresponds to the month, and D corresponds to the day of the month. NumPy uses the ISO 8601 standard (see http://en.wikipedia.org/wiki/ISO_8601). This is an international standard to represent dates and times. ISO 8601 allows the YYYY-MM-DD, YYYY-MM, and YYYYMMDD formats. Check for yourself, as follows:

    >>> np.datetime64('2015-04-22')
    numpy.datetime64('2015-04-22')
    >>> np.datetime64('2015-04')
    numpy.datetime64('2015-04')
    
  2. By default, ISO 8601 uses the local time zone. Times can be specified using the format T[hh:mm:ss]. For example, define January 1, 1677 at 8:19 p.m. as follows:
    >>> local = np.datetime64('1677-01-01T20:19')
    >>> local
    numpy.datetime64('1677-01-01T20:19Z')
    

    Additionally, a string in the format [hh:mm] specifies an offset that is relative to the UTC time zone. Create a datetime64 with 9 hours offset, as follows:

    >>> with_offset = np.datetime64('1677-01-01T20:19-0900')
    >>> with_offset
    numpy.datetime64('1677-01-02T05:19Z')
    

    The Z at the end stands for Zulu time, which is how UTC is sometimes referred to.

    Subtract the two datetime64 objects from each other:

    >>> local - with_offset
    numpy.timedelta64(-540,'m')
    

    The subtraction creates a NumPy timedelta64 object, which in this case, indicates a 540 minute difference. We can also add or subtract a number of days to a datetime64 object. For instance, April 22, 2015 happens to be a Wednesday. With the arange() function, create an array holding all the Wednesdays from April 22, 2015 until May 22, 2015 as follows:

    >>> np.arange('2015-04-22', '2015-05-22', 7, dtype='datetime64')
    array(['2015-04-22', '2015-04-29', '2015-05-06', '2015-05-13', '2015-05-20'], dtype='datetime64[D]')
    

    Note that in this case, it is mandatory to specify the dtype argument, otherwise NumPy thinks that we are dealing with strings.

What just happened?

We learned about the NumPy datetime64 type. This data type allows us to manipulate dates and times with ease. Its features include simple arithmetic and creation of arrays using the normal NumPy capabilities.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset