如何拆分这个numpy数组并减少小数位?

时间:2016-03-28 15:56:48

标签: python

给出像这样的numpy数组:

prob=    [[ -1.77244641  -3.89116659  -4.92632753  -8.04921303
       -9.05286957]]

我希望将它们写在以逗号分隔的文件中,并将小数位减少为4。 这就是我的尝试:

for pk in prob:
        jk=' '.join(str(b) for b in pk)
        f.write("("+ "%.4f" %jk + ")")
        f.write("\t")
        q=map(float, jk.split(','))

然而,这不接受十进制限制逻辑,并给出一个错误,说浮动参数不需要字符串..我试图提取概率并像这样写: (-1.7724, -3.8911, -4.9263, -8.0492, -9.0528)

2 个答案:

答案 0 :(得分:0)

您需要对每个字符串进行格式化,而不是对连接的字符串进行格式化。另一件事:你说逗号分隔,但你用空格加入它们。以下是您的程序应该是什么样的:

for pk in prob:
    jk = ','.join(["%.4f" % b for b in pk])
    f.write("(" + jk + ")" + "\t")

由于q = map(float, pk.split(','))已经存储了所有花车,因此pk行无用。

答案 1 :(得分:0)

我认为您的prob喜欢这样:

prob=numpy.array([[ -1.77244641 , -3.89116659  ,-4.92632753,  -8.04921303,
   -9.05286957]])

我改变了你的代码:

 for pk in prob:
    jk=', '.join("%.4f"%b for b in pk)
    jk="("+jk+")"+"\t"
    f.write(jk)