Numpy में टाइमस्टैम्प

Nov 07 2020

मैं नेट-पीथॉन का उपयोग करते हुए एक netcdf फ़ाइल से डेटा निकालने का प्रयास कर रहा हूं। डेटा हर घंटे के लिए है। दिनांक को संख्या के रूप में निकाला जा रहा है, न कि कैलेंडर-तिथि-समय के रूप में। पहले मैं डेटा निकालता हूं, इसे एक फ्लैट एनपी सरणी में परिवर्तित करता हूं, फिर फ़ाइल को सहेजने का प्रयास करता हूं। प्रारूप को '% s' के रूप में सहेजा गया है

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

यह इस तरह दिख रहा है:

लेकिन इसे इस तरह देखना होगा:

धन्यवाद

जवाब

ti7 Nov 07 2020 at 13:53

अधिवेशन द्वारा, तारीखों को अक्सर 1 जनवरी, 1970 से सेकंड में ऑफसेट के रूप में संग्रहीत किया जाता है

सेकंड्स को परिवर्तित करने के मामले में, यह उत्तर पायथन नेम्पी लोडटेक्स्ट - कन्वर्ट यूनिक्स टाइमस्टैम्प से पता चलता है कि उनके डेटाटाइप को बदलकर उन्हें परिवर्तित करना चाहिए (यह जितना संभव हो उतना कुशल होना चाहिए, यह बाय-पंक्ति लूप, डेटा कॉपी करना आदि)।

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

हालाँकि, E+18उपसर्ग का तात्पर्य यह है कि यदि आपके पास वास्तव में कोई तिथि है, तो आपके टाइमस्टैम्प नैनोसेकंड में हैं, इसलिए datetime64[ns]आपके लिए काम कर सकते हैं

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]')