有一个字符串数组和另一个数字数组,比如
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
的解决方案,而不是使用列表推导或重组进行拆分和重新格式化。
感谢。
答案 0 :(得分:1)
您无法制作ndarray
非同类数组类型,因此堆叠str_arr
和flt_arr
将无效。您可以先将flt_arr
转换为str
的数组,然后执行以下操作:
>>> np.char.mod("%4.2f", flt_arr)
array(['10.01', '11.01', '12.02'],
dtype='|S5')