2016-05-22 10 views
2

Ich habe zwei Arrays mit Datetime-Objekte, aber ich brauche nur ein kombiniertes Array mit Datum der ersten und der Zeit des zweiten .. Wenn ichWie werden zwei Datetime-Arrays in einem Datetime-Array kombiniert?

datetime.combine(date,time)

das Ergebnis verwenden ist

TypeError: combine() argument 1 must be datetime.date, not numpy.ndarray

der Code ist:

import numpy as np 
import matplotlib.pyplot as pp 
import math 
from datetime import datetime, time, date 
from glob import glob 
import pylab as plb 
from scipy.optimize import curve_fit 
from scipy import asarray as ar,exp 
#importo i nomi dei files 

fnames=glob('C:/Users/asus/Desktop/lab_astro/GALASSIA/galassia canale 43/*') 
#conto i files per ogni tipo e inizializzo le variabili dove mettere i dati 
num_file14=len(fnames) 
signal14=[] 
dt = datetime 
dd = datetime 


#leggo i files e riempio le variabiliChange working directory.. 
for n in range (0, num_file14): 
    data14=np.loadtxt(fnames[n], comments ='END', delimiter=';', skiprows=1, usecols=(0,1,7),dtype=object,converters={ 0: lambda x: dd.strptime(x, "%d/%m/%Y"),1: lambda x: dt.strptime(x, "%H.%M.%S") , 7: np.float}) 
    dd=np.append(orario,data14[:,0]) 
    dt=np.append(orario,data14[:,1]) 
    d = datetime.combine(dd,dt) 
    signal14=np.append(signal14,data14[:,2]) 

maby meine Frage naiv ist, wie ich in Python neu bin, aber ich brauche dieses Programm wirklich funktioniert ... Vielen dank für Ihre er LP !!

+1

Überprüfen Sie dieses http://stackoverflow.com/a/7501549/524743 – Samuel

+0

Können Sie die Werte od 'dd' und' dt' angeben. Ich denke, es muss in das Format "Datetime" konvertiert werden. –

Antwort

2

Ihre Variablen dd und dt sind im Format numpy.ndarray. Es muss in das Format datetime konvertiert werden. Blick auf die Bearbeitung von datetime.combine(date,time)

In [1]: import datetime 
In [2]: time = datetime.time(12,12,12) 
In [3]: date = datetime.date(2015,1,04) 
In [4]: datetime.datetime.combine(date,time) 
Out[1]: datetime.datetime(2015, 1, 4, 12, 12, 12) 

I dd hoffen repräsentieren für date und dt repräsentieren für time. So hat sich dein Code geändert.

datetime.datetime.combine(dd.date(),dt.time()) 

Wenn Sie Iteration verwenden. Sie müssen den Code gemäß der Iteration ändern

+0

thakyou, ich sehe .. jetzt ist die Konvertierung mein Problem! dd ist wie folgt: Aus [112]: array ([, datetime.datetime (2016, 5, 16, 0, 0), datetime.datetime (2016, 5, 16, 0 , 0, datetime.datetime (2016, 5, 16, 0, 0), datetime.datetime (2016, 5, 16, 0, 0), datetime.datetime (2016, 5, 16 , 0, 0)], dtype = Objekt) – ADHAFERA

+0

Bitte Codeformatierung auch im Kommentar verwenden. Es ist schwer zu lesen. –

+0

Ich denke, es ist ein 'numpy.darray' mit Elementen von' datetime' Variablen. So können Sie das durchspielen und das 'datetime.combine (date, time)' verwenden. –

Verwandte Themen