python - numpy 格式字符串中的转义 % 符号

标签 python numpy

我希望得到一些帮助。这是我的代码:

#! /usr/bin/python

import sys
import numpy as np

x = np.array(['aaa', 'bbb', 'ccc'])
y = np.array([10.0, 15.0, 25.0])
records_array = np.core.records.fromarrays([x, y])
np.savetxt(sys.stdout, records_array, fmt='%s %.1f')

给出(如预期):

aaa 10.0
bbb 15.0
ccc 25.0

要将最后一列打印为百分比,我将最后一行更改为:

np.savetxt(sys.stdout, records_array, fmt='%s %.1f %%')

但收到以下错误消息:

File "./savetxt_percent.py", line 9, in <module>
np.savetxt(sys.stdout, records_array, fmt='%s %.1f %%')
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 1055, in savetxt
raise error
ValueError: fmt has wrong number of % formats:  %s %.1f %%

谢谢!

最佳答案

奇怪的是 % 没有被正确解释。当您将字符串用于 fmt 时,它必须对其进行解析。我没有仔细查看代码,但是当尝试将字符串拆分为“%”字符以计算要打印的内容数时,它一定会感到困惑。要解决此问题,还可以将 np.savetxtfmt 参数指定为预分割列表。换句话说,您可以使用

np.savetxt(sys.stdout, records_array, fmt=['%s', '%.1f %%'])

这适用于您想要在输出中出现的任何数量/位置的“%”。

关于python - numpy 格式字符串中的转义 % 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24746237/

相关文章:

python - 是否可以在类中添加静态类型?

python - 如何使用 python、boto3 获取 S3 存储桶本身的可下载 URL 而不是对象 URL?

python - 生成没有上限的随机整数

python - CNN 训练精度在训练期间变得更好,但测试精度保持在 40% 左右

python - 有没有简单的方法可以在Python类构造函数中指定参数的默认值而不需要编写继承?

python - OSX El Capitan sqlalchemy 无法连接到 '127.0.0.1' (111) 上的 MySQL 服务器

python - 当数组名称为 unicode 时,numpy recfunctions append_fields 是否会失败?

python - iPython 有没有办法在给定数据帧的情况下生成此类图表?

python多处理与异步共享numpy数组: pool vs queue

python - Pandas - 数据框名称列表?