我有一个numpy数组,其中每个值都是一个浮点,后跟一个整数,例如:
my_array = numpy.array([0.4324321, 0, 0.9437212, 1, 0.4738721, 0, 0.49327321, 0])
我想这样保存它:
0.4324321 0 0.9437212 1 0.4738721 0 0.49327321 0
但如果我打电话来:
numpy.savetxt('output.dat',my_array,fmt='%f %i')
我得到一个错误:
AttributeError: fmt has wrong number of % formats. %f %i
我该怎么解决?
问题是
savetxt()
将为每个数组项打印一行。可以强制2D-array
创建新轴,然后打印(1x8)
格式:真正的问题是,打印出一个1d8元素数组会得到8行1列(或者,如果强制执行,则为1行8列),而不是4行2列。所以,您只能指定一种格式(或者,如果您强制使用,可以指定1或8种格式)。
如果要将其输出为4x2形状而不是1x8形状,则需要首先对阵列进行重新造型:
这将给你:
The docs有点混乱,因为它们将大部分的措辞用于处理复数,而不是简单的浮点数和整数,但基本规则是相同的。您可以为每一列指定一个说明符,也可以为每一列指定一个说明符(在中间为每一列指定实部和虚部是不相关的)。
如果要将它写在一行8列中,首先需要将它改为一行8列,而不是8行。
然后需要指定8种格式。无法告诉numpy“重复这两种格式四次”,但如果没有numpy的帮助,这很容易做到:
这给了你:
相关问题 更多 >
编程相关推荐