问题:将一个numpy数值数组转换为指定小数位数且去除尾部零的numpy字符串数组,我的方法是否是最好的?
import numpy as np
x = np.array([1.12345, 1.2, 0.1, 0, 1.230000])
print np.core.defchararray.rstrip(np.char.mod('%.4f', x), '0')
输出:
['1.1235' '1.2' '0.1' '0.' '1.23']
这是期望的结果。(我对四舍五入问题没有问题)
‘rstrip’和‘mod’函数都是numpy函数,这意味着速度很快,但是否有一种方法可以使用一个内置的numpy函数来实现呢?(即‘mod’是否有一个我找不到的选项?)这将节省两次返回副本的开销,对于非常大的数组而言速度较慢。
谢谢!
print np.char.mod('%0.4f', x)
? - Daleknp.char.mod("%.5g", x)
。 - Warren Weckessernp.savetxt
创建文件的吗? - Warren Weckessersavetxt
函数可以接受文件句柄作为参数:http://docs.scipy.org/doc/numpy/reference/generated/numpy.savetxt.html - Warren Weckesser