【问题标题】:unsupported format string passed to numpy.ndarray传递给 numpy.ndarray 的不受支持的格式字符串
【发布时间】:2018-10-15 18:56:34
【问题描述】:

假设我有数组:

import numpy as np
x = np.array([1.2334, 2.3455, 3.456], dtype=np.float32)

想要打印:

print('{:.2f}%'.format(x))

它给了我:

unsupported format string passed to numpy.ndarray.__format__

【问题讨论】:

  • 嗯..np.set_printoptions(precision=2) 工作了..我想知道为什么上面的代码不起作用。
  • 或作为字符串 ('{:.2f} %'*len(x)).format(*x) 产生 '1.23 %2.35 %3.46 %' 重复格式字符串的大小为x,然后加星标 x 分解为格式。
  • .format 机制取决于对象的__format__ 方法中定义的内容。 numpy 开发人员并没有付出太多努力来扩展它超出基础('!s' 和 '!r')。请注意,您的格式字符串也不适用于列表。

标签: python-3.x numpy


【解决方案1】:

如果你还想要format

list(map('{:.2f}%'.format,x))
Out[189]: ['1.23%', '2.35%', '3.46%']

【讨论】:

    【解决方案2】:

    试试这个:

    x = np.array([1.2334, 2.3455, 3.456], dtype=np.float32)
    
    x= list(map(lambda x :str(x) + '%',x.round(2)))
    print(f'{x}')
    

    它会打印:

    ['1.23%', '2.35%', '3.46%']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 2023-04-04
      • 2017-12-30
      • 2021-10-31
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多