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

glu*_*uke 6 python arrays numpy formatted-text

它似乎对我来说微不足道,但我仍然缺少一种有效和"干净"的方式来插入属于numpy数组(as aa[:,:])的一系列元素在一个格式化的字符串中进行打印/写入.事实上,扩展的逐元素规范语法如下:

formattedline= '%10.6f  %10.6f  %10.6f' % (aa[ii,0], aa[ii,1], aa[ii,2]) 
file1.write(formattedline+'\n')
Run Code Online (Sandbox Code Playgroud)

在工作中.

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

formattedline= '%10.6f  %10.6f  %10.6f' % (float(aa[ii,:]))
file1.write(formattedline+'\n')
Run Code Online (Sandbox Code Playgroud)

当然给出: TypeError: only length-1 arrays can be converted to Python scalars

要么:

formattedline= '%10.6f  %10.6f  %10.6f' % (aa[ii,:]) 
file1.write(formattedline+'\n')
Run Code Online (Sandbox Code Playgroud)

给:TypeError: float argument required, not numpy.ndarray.我尝试过迭代器,但没有成功.

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

那么:我怎样才能将迭代结合在numpy数组和字符串格式的时尚上?

And*_*den 5

你可以将它转换为元组:

formattedline = '%10.6f  %10.6f  %10.6f' % ( tuple(aa[ii,:]) )
Run Code Online (Sandbox Code Playgroud)

在更一般的情况下,您可以使用join:

formattedline = ' '.join('%10.6f'%F for F in aa[ii,:] )
Run Code Online (Sandbox Code Playgroud)