2014-09-24 6 views
6

Verwendung Wenn ich column_stack numpy Arrays verketten verwenden die dtype umgewandelt wird (in der Regel zu schweben)numpy: ist es möglich, die dtype von Spalten zu erhalten, wenn column_stack

a = numpy.array([1., 2., 3.], dtype=numpy.float64) 
b = numpy.array([1, 2, 3], dtype=numpy.int64) 
print numpy.column_stack((a, b)).dtype 
>>> float64 

ist es eine Möglichkeit, die dtype von zu bewahren die einzelnen Spalten?

+0

Glauben Sie, eine dieser Antworten hilft oder Sie suchen etwas anderes? – Dalek

+1

Vielen Dank, der rec.array Ansatz scheint genau das zu tun, was ich will. – fetteelke

+0

Sie sind wohlauf! – Dalek

Antwort

1

Sie können zwei Arrays mit numpy.lib.recfunctions Verfahren stapeln und den Typ mit ihm bewahren:

>>> from numpy.lib.recfunctions import append_fields 

>>> a = numpy.rec.array(a, dtype=[('a', numpy.float64)]) 
>>> new_a = append_fields(a, 'b', b, usemask=False, dtypes=[numpy.int64]) 
>>> new_a 
array([(1.0, 1), (2.0, 2), (3.0, 3)], 
     dtype=[('a', '<f8'), ('b', '<i8')]) 

>>> new_a['a'] 
array([ 1., 2., 3.]) 

>>> new_a['b'] 
array([1, 2, 3]) 
Verwandte Themen