Hello,

I using the following code:

if (PyArray_TYPE(arr1) == NPY_DATETIME) {
        // Ensure datetime64[ms]
        auto tmp = 
reinterpret_cast<PyArrayObject*>(PyObject_CallMethod(reinterpret_cast<PyObject*>(arr1),
 "astype", "(s)", "datetime64[ms]"));
        std::swap(arr1, tmp);
        Py_XDECREF(tmp);
        // Ensure integer
        tmp = 
reinterpret_cast<PyArrayObject*>(PyObject_CallMethod(reinterpret_cast<PyObject*>(arr1),
 "astype", "(s)", "i8"));
        std::swap(arr1, tmp);
        Py_XDECREF(tmp);
        tmp = reinterpret_cast<PyArrayObject*>(PyArray_FromArray(arr1, 
PyArray_DescrFromType(NPY_INT64), NPY_ARRAY_IN_ARRAY));
        std::swap(arr1, tmp);
        Py_XDECREF(tmp);
}

First, if something is wrong with my code let me known. Then I wonder
if I can have a safe shortcut to avoid converting datetime64 to i8. I
guess the internal data of datetime64[ms] is i8 thus copying and
casting the array may be avoided.

Thanks by advance
Best regards.


_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to