相关疑难解决方法(0)

如何在没有科学记法和精确度的情况下漂亮打印numpy.array?

我很好奇,是否有任何方式打印格式化numpy.arrays,例如,以类似于这样的方式:

x = 1.23456
print '%.3f' % x
Run Code Online (Sandbox Code Playgroud)

如果我想打印numpy.array浮点数,它会打印几个小数,通常采用"科学"格式,即使对于低维数组也很难读取.但是,numpy.array显然必须打印成一个字符串,即用%s.这有解决方案吗?

python numpy pretty-print python-2.x

295
推荐指数
9
解决办法
33万
查看次数

浮点数的Python舍入错误

我不知道这是否是一个明显的错误,但是在运行Python脚本来改变模拟的参数时,我意识到缺少delta = 0.29和delta = 0.58的结果.经过调查,我注意到以下Python代码:

for i_delta in range(0, 101, 1):
  delta = float(i_delta) / 100

  (...)

filename = 'foo' + str(int(delta * 100)) + '.dat'
Run Code Online (Sandbox Code Playgroud)

为delta = 0.28和0.29生成相同的文件,与.57和.58相同,原因是python返回float(29)/ 100为0.28999999999999998.但这不是一个系统性的错误,在某种意义上它并不是每个整数都会发生的.所以我创建了以下Python脚本:

import sys

n = int(sys.argv[1])

for i in range(0, n + 1):
  a = int(100 * (float(i) / 100))
  if i != a: print i, a
Run Code Online (Sandbox Code Playgroud)

而且我看不到发生此舍入错误的数字中的任何模式.为什么这些特定数字会发生?

python

23
推荐指数
2
解决办法
2万
查看次数

Python数学是错误的

可能重复:
带有浮点数的Python舍入错误

Python 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> 4.2 - 1.8
2.4000000000000004
>>> 1.20 - 1.18
0.020000000000000018
>>> 5.1 - 4
1.0999999999999996
>>> 5 - 4
1
>>> 5.0 - 4.0
1.0
Run Code Online (Sandbox Code Playgroud)

为什么Python的数学错误?

python math numbers

7
推荐指数
2
解决办法
2万
查看次数

标签 统计

python ×3

math ×1

numbers ×1

numpy ×1

pretty-print ×1

python-2.x ×1