当我使用 column_stack
连接 NumPy
数组时,dtype
被转换:
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
有没有办法保留各个列的 dtype
?
最佳答案
您可以使用 numpy.lib.recfunctions
方法堆叠两个数组并保留其类型:
>>> 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])
关于python - numpy:使用 column_stack 时是否可以保留列的 dtype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26018781/