Stempel waktu di Numpy

Nov 07 2020

Saya mencoba mengekstrak data dari file netcdf menggunakan wrf-python. Data untuk setiap jam. Tanggal diekstrak sebagai angka, dan bukan kalender-tanggal-waktu. Pertama saya mengekstrak datanya, mengubahnya menjadi array np datar, kemudian mencoba menyimpan file. Formatnya disimpan sebagai '% s'

np.savetxt((stn + 'WRF_T2_T10_WS_WD.csv'), np.transpose(arr2D), %s, delimiter=',', header=headers, comments='')

ini terlihat seperti ini:

tetapi harus terlihat seperti ini:

Terima kasih

Jawaban

ti7 Nov 07 2020 at 13:53

Menurut ketentuan, tanggal sering kali disimpan sebagai offset dalam hitungan detik sejak 1 Jan 1970

Untuk kasus mengonversi detik, jawaban ini Python Numpy Loadtxt - Convert unix timestamp menyarankan untuk mengonversinya dengan mengubah tipe data mereka (harus seefisien mungkin karena menghindari loop per baris, menyalin data, dll.)

x = np.asarray(x, dtype='datetime64[s]')

Namun, E+18postfix menyiratkan bahwa jika Anda benar-benar memiliki tanggal, stempel waktu Anda dalam nanodetik, jadi datetime64[ns]mungkin bekerja untuk Anda

import time
import numpy as np
>>> a = np.array([time.time() * 10**9])  # epoch seconds to ns
>>> a  # example array
array([1.60473147e+18])
>>> a = np.asarray(a, dtype='datetime64[ns]')
>>> a
array(['2020-11-07T06:44:29.714103040'], dtype='datetime64[ns]')