Python 在numpy.savetxt中设置fmt选项
我正在查看Python 在numpy.savetxt中设置fmt选项,python,arrays,string,numpy,save,Python,Arrays,String,Numpy,Save,我正在查看numpy.savetxt,我被困在fmt选项上 我试着查看下面链接中的参考,所有可用于fmt选项排序的字母让我大致了解了正在发生的事情 我不明白的是,是否需要%符号,在给出的示例中,我应该如何解释10.5数字? 如果“f”是关于设置浮点的,那么它为什么是10.5(同样,我可能不知道浮点是如何设置的…。知道只适用于1D或2D数组,一般的想法是: 当fmt是单个格式字符串时,它将应用于 阵列(一维或二维输入阵列) 当fmt是一系列格式化字符串时,它将应用于2D输入数组的每一列 我在这
numpy.savetxt
,我被困在fmt
选项上
我试着查看下面链接中的参考,所有可用于fmt
选项排序的字母让我大致了解了正在发生的事情
我不明白的是,是否需要%
符号,在给出的示例中,我应该如何解释10.5数字?
如果“f”是关于设置浮点的,那么它为什么是10.5(同样,我可能不知道浮点是如何设置的…。知道只适用于1D或2D数组,一般的想法是:
- 当
是单个格式字符串时,它将应用于 阵列(一维或二维输入阵列)fmt
- 当
是一系列格式化字符串时,它将应用于2D输入数组的每一列fmt
import numpy as np
a = np.array([[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34]])
1) 设置浮点精度:np.savetxt('tmp.txt',a,fmt='%1.3f')
2) 添加字符以右对齐
带空格:np.savetxt('tmp.txt',a,fmt='%4d')
带零:np.savetxt('tmp.txt',a,fmt='%04d')
3) 向左对齐添加字符(使用“-
”)
带空格:np.savetxt('tmp.txt',a,fmt='%-4d')
4) 当fmt
是一系列格式化字符串时,2D输入数组的每一行都会根据fmt
进行处理:
fmt
作为单个格式化字符串中的序列
fmt = '%1.1f + %1.1f / (%1.1f * %1.1f)'
np.savetxt('tmp.txt', a, fmt=fmt)
11.0 + 12.0 / (13.0 * 14.0)
21.0 + 22.0 / (23.0 * 24.0)
31.0 + 32.0 / (33.0 * 34.0)
fmt
作为格式化字符串的迭代器:
fmt = '%d', '%1.1f', '%1.9f', '%1.9f'
np.savetxt('tmp.txt', a, fmt=fmt)
11 12.0 13.000000000 14.000000000
21 22.0 23.000000000 24.000000000
31 32.0 33.000000000 34.000000000
这可能会有帮助
从链接:
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::= <any character>
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= integer
precision ::= integer
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
format_spec::=[[fill]align][sign][[0][width][,][.precision][type]
填充::=
对齐::=“|”=“|”^”
符号::=“+”|“-“|”
宽度::=整数
精度::=整数
类型::=“b”|“c”|“d”|“e”|“e”|“f”|“f”|“g”|“n”|“o”|“s”|“x”|“%”
宽度是定义最小字段宽度的十进制整数。如果未指定,则字段宽度将由内容决定
如果没有给出明确的对齐方式,则在宽度字段前面加一个零('0')字符可以为数字类型启用符号感知的零填充。这相当于对齐类型为“=”的填充字符“0”
精度是一个十进制数字,指示对于使用“f”和“f”格式的浮点值,小数点后应显示多少位,对于使用“g”或“g”格式的浮点值,小数点前后应显示多少位。对于非数字类型,字段指示最大字段大小——换句话说,字段内容将使用多少个字符。整数值不允许使用精度
第4点描述了10和5 in%10.5f。五,。在你第一次链接到的文档中。愚蠢的我。。。谢谢你!直到你指出这些观点,我才意识到它们实际上是我问题的答案!因此,在这种情况下,字段是。那太好了!
11 12 13 14
21 22 23 24
31 32 33 34
fmt = '%1.1f + %1.1f / (%1.1f * %1.1f)'
np.savetxt('tmp.txt', a, fmt=fmt)
11.0 + 12.0 / (13.0 * 14.0)
21.0 + 22.0 / (23.0 * 24.0)
31.0 + 32.0 / (33.0 * 34.0)
fmt = '%d', '%1.1f', '%1.9f', '%1.9f'
np.savetxt('tmp.txt', a, fmt=fmt)
11 12.0 13.000000000 14.000000000
21 22.0 23.000000000 24.000000000
31 32.0 33.000000000 34.000000000
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
fill ::= <any character>
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= integer
precision ::= integer
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"