2014-09-24 1 views
6

Gdy używam column_stack aby złączyć NumPy tablicami dtype zostaje zamienione (zazwyczaj unosić)numpy: czy to możliwe, aby zachować dtype kolumn przy użyciu 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 

czy istnieje sposób, aby zachować dtype z poszczególne kolumny?

+0

Czy uważasz, że którykolwiek z tych odpowiedzi jest pomaganie lub szukasz czegoś innego? – Dalek

+1

Wielkie dzięki, podejście rec.array wydaje się robić dokładnie to, co chcę. – fetteelke

+0

jesteś dobrze przybył! – Dalek

Odpowiedz

1

można układać dwie tablice z numpy.lib.recfunctions metody i zachowania typu z nim:

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