`TypeError: Ungültiger Typ promotion", beim anfügen einer heterogenen numpy array

Habe ich erstellt ein array mit:

Ticket_data = np.empty((0,7),
                       dtype='str,datetime64[m],datetime64[m],str,str,str,str')

ich versuche Daten anfügen mit:

lineitem = [str(data[0][0]), OpenDT, CloseDT, str(data[0][11]),
            str(data[0][12]), str(data[0][13]), str(data[0][14])]

Wo OpenDT und CloseDT erstellt wurden, mit np.datetime64(DTstring, 'm')

Bin ich immer die Fehlermeldung:

Traceback (most recent call last):
  File "Daily Report.py", line 25, in <module>
    np.append(Ticket_data, np.array([lineitem]), axis=0)
  File "C:\Python27\lib\site-packages\numpy\lib\function_base.py", line 3884, in append
    return concatenate((arr, values), axis=axis)
TypeError: invalid type promotion

Edit:

print np.array([lineitem])

Ausgänge

[['21539' '2015-06-30T10:46-0700' '2015-06-30T10:55-0700' 'Testtext'
 'Testtext2' 'Testtext3' 'Testtext5']]

und

print np.array([lineitem], dtype=Ticket_data.dtype)

Ausgänge

[[('', 245672259890L, datetime.datetime(1970, 1, 1, 0, 0), '', '', '', '')
  ('', datetime.datetime(2015, 6, 30, 17, 46), datetime.datetime(1970, 1, 1, 0, 0), '', '', '', '')
  ('', datetime.datetime(2015, 6, 30, 17, 55), datetime.datetime(1970, 1, 1, 0, 0), '', '', '', '')
  ('', 7741528753124368710L, datetime.datetime(1982, 11, 21, 6, 33), '', '', '', '')
  ('', 7959953343691844691L, datetime.datetime(1970, 1, 1, 0, 0), '', '', '', '')
  ('', datetime.datetime(5205, 7, 21, 7, 42), datetime.datetime(1970, 1, 1, 0, 0), '', '', '', '')
  ('', 2336635297857499728L, 2338042681633169744L, '', '', '', '')]]

Was kann ich tun, um dieses Problem beheben?

Bezüglich der Bearbeitung, sollten Sie weglassen, die zusätzlichen Klammern um [lineitem] (d.h. np.array(lineitem, dtype=Ticket_data.dtype))
Dann gibt er mir einen dimensionalen Fehler, wenn ich versuche Ticket_data = np.append(Ticket_data, np.array(lineitem, dtype=Ticket_data.dtype), axis=0)

InformationsquelleAutor Mark Omo | 2015-07-01

Schreibe einen Kommentar