NumPy konvertiert Datetime64 in Datetime.Datetime oder Timestamp

Salman Mehmood 20 Juni 2023
  1. das Problem
  2. Konvertieren Sie datetime.datetime in np.datetime64 und pd.Timestamp
  3. Konvertieren Sie np.datetime64 in datetime.datetime und pd.Timestamp
  4. Wandeln Sie Timestamp in datetime und datetime64 um
NumPy konvertiert Datetime64 in Datetime.Datetime oder Timestamp

Dieser Artikel soll zeigen, wie Daten zwischen numPy.datetim64, datetime.datetime und Timestamp konvertiert werden.

das Problem

Beim Umgang mit Daten – ob geordnet oder ungeordnet – stößt man ziemlich häufig auf Datum und Uhrzeit. Je nach Situation muss mit Zeit und Datum in geeigneter Weise umgegangen werden, um sicherzustellen, dass die verarbeiteten Daten in einem gewünschten Format vorliegen.

Codebeispiel:

import datetime
import numpy as np
import pandas as pd

dt = datetime.datetime(2022, 5, 21)
ts = pd.DatetimeIndex([dt])[0]
dt64 = np.datetime64(dt)

Im obigen Code haben wir drei Module namens datetime, numpy und pandas importiert, die jeweils ihre Implementierung zum Speichern und Verarbeiten von Daten bereitstellen (jedes hat seine eigenen unterschiedlichen Anwendungsfälle).

Mit datetime.datetime() erstellen wir eine datetime-Instanz und speichern sie in einer Variablen namens dt. Was pandas betrifft, haben wir die Methode pd.DatetimeIndex() verwendet, die ein unveränderliches Array erstellt, das n Anzahl von datetime64-Instanzen speichert und beim Zugriff auf das erste Mitglied des Arrays eine Timestamp-Instanz zurückgibt.

Kommen wir zum Modul pandas, verwenden wir die Methode datetime64(), um die Instanz datetime zu konvertieren und in einer Variablen namens dt64 zu speichern.

Es ist einfach, datetime in Timestamp- und datetime64-Instanzen umzuwandeln. In diesem Artikel werden wir nun sehen, wie wir np.datetime64 in datetime- und Timestamp-Instanzen umwandeln können.

Konvertieren Sie datetime.datetime in np.datetime64 und pd.Timestamp

Codebeispiel:

import datetime
import numpy as np
import pandas as pd

dt = datetime.datetime(
    year=2018, month=10, day=24, hour=4, minute=3, second=10, microsecond=7199
)

# convert datetime.datetime to np.datetim364
print(np.datetime64(dt))

# datetime.datetime to pd.Timestamp
print(pd.Timestamp(dt))

Ausgang:

2018-10-24T04:03:10.007199
2018-10-24 04:03:10.007199

Konvertieren Sie datetime. datetime in datetime64 und Timestamp, indem Sie die datetime-Instanz an die Konstruktoren von datetime64 und Timestamp übergeben, die konvertiert werden.

Konvertieren Sie np.datetime64 in datetime.datetime und pd.Timestamp

Codebeispiel:

import datetime
import numpy as np
import pandas as pd

# np.datetime64 to datetime.datetime
dt64 = np.datetime64("2017-10-24 05:34:20.123456")
unix_epoch = np.datetime64(0, "s")
one_second = np.timedelta64(1, "s")
seconds_since_epoch = (dt64 - unix_epoch) / one_second

print(datetime.datetime.utcfromtimestamp(seconds_since_epoch))

# np.datetime64 to Timestamp
print(pd.Timestamp(dt64))

Ausgang:

2017-10-24 05:34:20.123456
2017-10-24 05:34:20.123456

Um von np.datetime64 in datetime.datetime zu konvertieren, müssen wir zuerst die datetime64-Daten in Sekunden (im Epochenformat) konvertieren. Nach der Konvertierung werden die Sekunden an die datetime-Methode namens utcfromtimestamp übergeben, die die Epochenzeit liest und in eine Instanz von datetime konvertiert.

Was np.datetime64 zu Timestamp betrifft, ist es relativ einfach, übergeben Sie einfach die np.datetime64-Instanz an den Timestamp-Konstruktor.

Wandeln Sie Timestamp in datetime und datetime64 um

Codebeispiel:

import datetime
import numpy as np
import pandas as pd

ts = pd.Timestamp("2017-10-24 04:24:33.654321")

# Timestamp to datetime.datetime
print(ts.to_pydatetime())

# Timestamp to np.datetime64
print(ts.to_datetime64())

Ausgang:

2017-10-24 04:24:33.654321
2017-10-24T04:24:33.654321000

Mit Hilfe dieser Funktionen lässt sich Timestamp mit nur einem einzigen Methodenaufruf einfach in datetime und datetime64 umwandeln. Verwenden Sie zum Konvertieren von Timestamp in datetime.datetime die Methode to_pydatetime(). Sie konvertiert die Timestamp-Instanz in eine datetime. datetime-Instanz.

Verwenden Sie für die Konvertierung von Timestamp in datetime die Methode to_datetime64(). Es konvertiert die Timestamp-Instanz in eine np.datetime64-Instanz.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn