Función equivalente de datenum (datestring) de Matlab en Python

En Matlab, cuando ejecuto la función ” datenum ” como la siguiente;

datenum(1970, 1, 1); 

Me sale el siguiente resultado:

 719529 

Estoy tratando de encontrar la función o script equivalente que me dará el mismo resultado. Pero, desafortunadamente, no pude encontrar una explicación suficiente en Internet para hacer esto.

He visto este tutorial: https://docs.python.org/2/library/datetime.html , pero no ayudó.

¿Podría decirme, cómo puedo obtener la misma salida en python?

Gracias,

Yo usaría el módulo datetime y la función toordinal ()

 from datetime import date print date.toordinal(date(1970,1,1)) 719163 

Para obtener la fecha que tienes usaría

 print date.toordinal(date(1971,1,2)) 719529 

o para facilitar la conversión

 print date.toordinal(date(1970,1,1))+366 719529 

Creo que la razón por la que la fecha está desactivada se debe a que el datenum comienza a contar desde el 0 de enero de 0000, lo cual no se reconoce como una fecha válida. Tendrá que contrarrestar el cambio en la fecha de inicio agregando uno al año y al día. El mes no importa porque el primer mes en datetime es igual a 0 en datenum

Puedes restar objetos de date en Python:

 >>> date(2015, 10, 7) - date(1, 1, 1) datetime.timedelta(735877) >>> (date(2015, 10, 7) - date(1, 1, 1)).days 735877 

Solo tenga cuidado de usar una época que sea útil para sus necesidades.

Las respuestas anteriores devuelven un entero. El datenum de MATLAB no necesariamente devuelve un entero. El siguiente código vuelve a tener la misma respuesta que el datenum de MATLAB:

 from datetime import datetime as dt def datenum(d): return 366 + d.toordinal() + (d - dt.fromordinal(d.toordinal())).total_seconds()/(24*60*60) d = dt.strptime('2019-2-1 12:24','%Y-%m-%d %H:%M') dn = datenum(d)