格式化numpy数组中的浮点数[重复]

2024-01-22

如果我有一个像这样的 numpy 数组:

[2.15295647e+01, 8.12531501e+00, 3.97113829e+00, 1.00777250e+01]

如何移动小数点并格式化数字,这样我最终会得到一个像这样的 numpy 数组:

[21.53, 8.13, 3.97, 10.08]

np.around(a, decimals=2)只给我[2.15300000e+01, 8.13000000e+00, 3.97000000e+00, 1.00800000e+01]这是我不想要的,而且我还没有找到其他方法来做到这一点。


为了使numpydisplay任意格式的浮点数组,您可以定义一个自定义函数,该函数将浮点值作为其输入并返回格式化字符串:

In [1]: float_formatter = "{:.2f}".format

The f这里的意思是定点格式(不是“科学的”),并且.2表示两位小数(您可以阅读有关字符串格式的更多信息here http://docs.python.org/2/library/stdtypes.html#string-formatting).

让我们用浮点值来测试一下:

In [2]: float_formatter(1.234567E3)
Out[2]: '1234.57'

要使 numpy 以这种方式打印所有浮点数组,您可以传递formatter=论证np.set_printoptions:

In [3]: np.set_printoptions(formatter={'float_kind':float_formatter})

现在 numpy 将以这种方式打印所有浮点数组:

In [4]: np.random.randn(5) * 10
Out[4]: array([5.25, 3.91, 0.04, -1.53, 6.68]

请注意,这仅影响 numpy 数组,而不影响标量:

In [5]: np.pi
Out[5]: 3.141592653589793

它也不会影响非浮点数、复杂浮点数等 - 您需要为其他标量类型定义单独的格式化程序。

您还应该意识到,这only影响 numpy 如何显示浮点值 - 将在计算中使用的实际值将保留其原始精度。

例如:

In [6]: a = np.array([1E-9])

In [7]: a
Out[7]: array([0.00])

In [8]: a == 0
Out[8]: array([False], dtype=bool)

麻木打印a就好像它等于0,但它不是 - 它仍然等于1E-9.

如果您确实想以影响计算中使用它们的方式对数组中的值进行舍入,则应该使用np.round,正如其他人已经指出的那样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

格式化numpy数组中的浮点数[重复] 的相关文章

随机推荐

  • posix线程阻塞信号和解除阻塞

    有没有办法阻止同一组中的某些信号并取消阻止其他信号 我似乎就是不明白这个问题 一个例子 sigset t set sigemptyset set sigaddset set SIGUSR1 Block signal SIGUSR1 in t
  • @DataJpaTest 忽略 `spring.datasource.url` 配置。怎么修?

    我遇到了问题 DataJpaTest 因为由于缺少架构而无法创建表 1 所以我想 我可以通过在连接字符串中创建模式来欺骗 spring 如下所示 应用程序属性 spring datasource url jdbc h2 mem SCH MO
  • 如果行(特定字段)匹配,则 awk 列的平均部分

    这是我的输入文件的示例 cat NDVI bm P01 031 RAW 0 516 0 0 P01 021 RAW 0 449 0 0 P02 045 RAW 0 418 0 0 P03 062 RAW 0 570 0 0 P03 064
  • 使用上下文管理器时对象变为 None

    为什么这不起作用 class X var1 1 def enter self pass def exit self type value traceback pass with X as z print z var1 I get print
  • Safari html5 视频 mp4 无法在 htaccess 文件夹中播放,[重复]

    这个问题在这里已经有答案了 我只是在一个包含一些视频的私人页面上工作 这些视频只能通过 htaccess 访问 所有视频均采用 html5 编码 并且该网站在没有 htaccess 文件的情况下适用于每个浏览器 将 htaccess 文件放
  • 如果有特定类,则将类添加到父 div

    尝试将类添加到父 div div class widget content if widget content li a有特定的类别 ifthis HTML div class widget content ul li a href htt
  • 使用@fontface字体加载斜体

    我有像这样的CSS font face font family alegreya src url fonts AlegreyaBold ttf font weight normal font style normal font face f
  • 为什么我要在 NHibernate 会话之上使用工作单元模式?

    我什么时候会在 NHibernate 已经提供的内容之上编写一个 UoW 实现 有现实世界的例子吗 您所描述的工作单元已经由 NHibernate 提供 因此没有理由执行这样的工作单元 我们在 WCF 服务中拥有的是更高级别的工作单元 其中
  • 在 Primefaces 4 中显示格式化的十进制数字 [重复]

    这个问题在这里已经有答案了 我有一个带有浮点字段的数据库表 我想通过 Primefaces 显示它 我想显示格式为 例如一千 的数字 1 000 00 我试过
  • 如何针对使用 matplotlib 的代码编写单元测试?

    我正在开发一个 python 2 7 程序 它生成许多不同的 matplotlib 图形 数据不是随机的 我愿意实施一些测试 使用单元测试 以确保生成的数字是正确的 例如 我将预期的图形 数据或图像 存储在某个地方 运行我的函数并将结果与
  • 如何控制库类的 Jackson 序列化

    我有一堂课 让我们称之为Piece 包含类型的成员com jme3 math ColorRGBA 使用默认的 Jackson 序列化 成员不仅被序列化为其成员r g b and a 但也使用像这样的吸气剂getAlpha 由于这显然是多余的
  • 切换多个 case 语句

    有人可以建议我如何替换下面的代码吗 如何重写代码以避免块的重复case 3 code block A break switch i case 1 code block A break case 2 code block b break ca
  • 如何避免执行更新的更新触发器中的递归?

    我需要使用触发器更新记录中货物的 vat total sum 但是触发触发器来更新记录并陷入递归 我怎样才能避免这种情况 代码 CREATE OR REPLACE FUNCTION vat total sum RETURNS TRIGGER
  • 将字符串数组发送到 Web API 方法

    这是我的客户端 ajax 调用 var list a b c d var jsonText data list ajax type POST url api scheduledItemPriceStatus updateStatusToDe
  • gprof 没有输出

    我正在尝试使用 gprof 来分析我正在开发的一些数字代码 但 gprof 似乎无法从我的程序中收集数据 这是我的命令行 g Wall O3 g pg o fftw test fftw test cpp lfftw3 lfftw3 thre
  • 蓝牙适配器不会停止扫描 BLE 设备

    在我的应用程序中 我有开始和停止按钮 当用户按下开始时 我调用 startScan 方法 bluetoothAdapter getBluetoothLeScanner startScan getLeScanCallback 当用户按停止时
  • 如何循环遍历数据库的表?

    我试图使用以下代码循环数据库的表 但出现错误java lang UnsupportedOperationException 我什至尝试过cfloop query and other attributes出现错误复杂值无法转换为简单值 谁能告
  • Lua 无法计算 math.abs(29.7 - 30) <= 0.3 [重复]

    这个问题在这里已经有答案了 今天早上我在我的 Lua 脚本中发现了一个错误 这看起来很奇怪 这次评估怎么会失败呢 示例可以在以下位置进行测试here http www lua org cgi bin demo 第一个例子 if math a
  • 为什么 Golang 强制大括号不在下一行?

    correct if true 不正确 if true 为什么要强制执行这种样式 它与语言规范有关 还是只是因为他们更喜欢一种样式而不是另一种样式 为什么有大括号但没有分号 为什么我不能将左大括号放在下一行 Go 使用大括号进行语句分组 这
  • 格式化numpy数组中的浮点数[重复]

    这个问题在这里已经有答案了 如果我有一个像这样的 numpy 数组 2 15295647e 01 8 12531501e 00 3 97113829e 00 1 00777250e 01 如何移动小数点并格式化数字 这样我最终会得到一个像这