如何使用numpy.savetxt将指定格式的字符串和数字混合保存到文本文件中?

时间:2011-09-30 22:52:00

标签: python numpy

有一个字符串数组和另一个数字数组,比如

str_arr = np.array(['object1_short', 'object2_intermidiate', 'object3_long'])

flt_arr = np.array([10.01234235, 11.01234235, 12.023432])

如何在fmt中指定np.savetxt,以便文本文件为

object1    10.01
object2    11.01
object3    12.02

,即分别在%7s%4.2f中的两个数组。

我真的想使用numpy.savetxt来执行此操作,但直接指定

np.savetxt("output.txt", np.vstack([str_arr, flt_arr]).T), fmt = '%7s %4.2f')

似乎不起作用。是否可以使用savetxt?我真的更喜欢基于numpy.array的解决方案,而不是使用列表推导或重组进行拆分和重新格式化。

感谢。

1 个答案:

答案 0 :(得分:1)

您无法制作ndarray非同类数组类型,因此堆叠str_arrflt_arr将无效。您可以先将flt_arr转换为str的数组,然后执行以下操作:

>>> np.char.mod("%4.2f", flt_arr)
array(['10.01', '11.01', '12.02'], 
      dtype='|S5')