Python numpy数组元素系列的格式化字符串

Python numpy数组元素系列的格式化字符串,python,arrays,numpy,formatted-text,Python,Arrays,Numpy,Formatted Text,这对我来说似乎微不足道,但我仍然缺少一种高效且“干净”的方法,无法将属于numpy数组的一系列元素(如aa[:,:])插入到要打印/写入的格式化字符串中。 事实上,扩展的逐元素规范语法如下: formattedline= '%10.6f %10.6f %10.6f' % (aa[ii,0], aa[ii,1], aa[ii,2]) file1.write(formattedline+'\n') 我们正在工作 但我没有找到任何其他较短的解决方案,因为: formattedline= '%1

这对我来说似乎微不足道,但我仍然缺少一种高效且“干净”的方法,无法将属于numpy数组的一系列元素(如
aa[:,:]
)插入到要打印/写入的格式化字符串中。 事实上,扩展的逐元素规范语法如下:

formattedline= '%10.6f  %10.6f  %10.6f' % (aa[ii,0], aa[ii,1], aa[ii,2]) 
file1.write(formattedline+'\n')
我们正在工作

但我没有找到任何其他较短的解决方案,因为:

formattedline= '%10.6f  %10.6f  %10.6f' % (float(aa[ii,:]))
file1.write(formattedline+'\n')
当然给出了:
TypeError:只有长度为1的数组才能转换为Python标量

或:

给出:
TypeError:需要浮点参数,而不是numpy.ndarray
。 我尝试过迭代器,但没有成功

当然,当有几个元素要打印时,这很有趣


那么:如何将numpy数组上的迭代和字符串格式的方式结合起来?

您可以将其转换为元组:

formattedline = '%10.6f  %10.6f  %10.6f' % ( tuple(aa[ii,:]) )
在更一般的情况下,您可以使用
连接

formattedline = ' '.join('%10.6f'%F for F in aa[ii,:] )

如果要将整个数组写入文件,请使用np.savetxt:

np.savetxt(file1, aa, fmt = '%10.6f')
fmt
参数可以是单一格式,也可以是一系列格式,或者类似于字符串的多格式

'%10.6f  %5.6f  %d'

... 谢谢但是如果我不同时保存整个阵列呢。。。所以,如果我要添加数组切片和一些文本,那么我认为@hayden的建议是最好的。在引擎盖下,
np.savetxt
调用
fh.write(asbytes(格式%tuple(行)+换行))
。(在Python2中,
asbytes=str
)这很好而且有效!:)。。。所以第二个解决方案实际上是迭代numpy数组,非常好。。。。但是,添加一个字符串:
formattedline='%4s%10.6f%10.6f%10.6f%'(string1,(tuple(aa[ii,:]))
给出了
TypeError:需要浮点参数,而不是tuple
,我不明白why@gluuke您需要添加它们:
(string1,)+tuple(aa[ii,:])
'%10.6f  %5.6f  %d'