草庐IT

floating-point-conversion

全部标签

python - Python 命令行脚本中 'script' 与 'entry_point' 的优缺点

Python的setuptool有两种向Python包添加命令行脚本的方法:script和entry_point。Thistutorial概述了这些方式:脚本将Python脚本(funniest-joke)添加到包树中,并将其路径添加到setup.py:setup(...scripts=['bin/funniest-joke'],...)入口点:将Python脚本(funnie-joke)添加到包树中。添加一个main()函数,并添加运行最有趣的main()的command_line.py子模块:command_line.py:importfunniestdefmain():print

python - 你可以格式化 pandas 整数以进行显示,例如 `pd.options.display.float_format` 用于 float 吗?

我见过this和this关于格式化floating-point数字以在pandas中显示,但我有兴趣为integers做同样的事情。现在,我有:pd.options.display.float_format='{:,.2f}'.format这适用于我数据中的float,但要么会在转换为float的整数上留下烦人的尾随零,要么我会得到不使用逗号格式化的纯整数。pandas文档提到了一个SeriesFormatter类,我无法找到任何相关信息。或者,如果有一种方法可以编写一个字符串格式化程序,它将float格式化为'{:,.2f}'并以零尾随十进制float作为'{:,d}',那也行。

python - 在numpy中查找 float 组的唯一元素(使用增量值进行比较)

我在numpy中有一个ndarray浮点值,我想找到这个数组的唯一值。当然,由于浮点精度,这存在问题......所以我希望能够设置一个增量值以在计算出哪些元素是唯一的时用于比较。有没有办法做到这一点?目前我只是在做:unique(array)这给了我类似的东西:array([-Inf,0.62962963,0.62962963,0.62962963,0.62962963,0.62962963])看起来相同的值(显示的小数位数)明显略有不同。 最佳答案 另一种可能性是四舍五入到最接近的理想公差:np.unique(a.round(de

python - 将货币转换为 float (括号表示负数)

我有一个带有货币的df:df=pd.DataFrame({'Currency':['$1.00','$2,000.00','(3,000.00)']})Currency0$1.001$2,000.002(3,000.00)我想将“货币”dtype转换为float,但括号字符串(表示负数)有问题。这是我当前的代码:df[['Currency']]=df[['Currency']].replace('[\$,]','',regex=True).astype(float)产生错误:ValueError:couldnotconvertstringtofloat:(3000.00)我想要的dty

python - 为什么对数字调用 float() 比在 Python 中添加 0.0 慢?

在Python中将整数转换为float比将0.0加到该整数上慢的原因是什么?importtimeitdefadd_simple():foriinrange(1000):a=1+0.0defcast_simple():foriinrange(1000):a=float(1)defadd_total():total=0foriinrange(1000):total+=1+0.0defcast_total():total=0foriinrange(1000):total+=float(1)print"Addsimpletiming:%s"%timeit.timeit(add_simple,n

python - float 和字符串转换的奇怪行为

我已经在pythonshell中输入了这个:>>>0.1*0.10.010000000000000002我预计0.1*0.1不是0.01,因为我知道以10为底的0.1在以2为底的周期性。>>>len(str(0.1*0.1))4我预计会得到20个,因为我在上面看到了20个字符。为什么我得到4?>>>str(0.1*0.1)'0.01'好的,这就解释了为什么我len给我4,但为什么str返回'0.01'?>>>repr(0.1*0.1)'0.010000000000000002'为什么str圆而repr不圆?(我已阅读thisanswer,但我想知道他们如何决定str何时对float进行

python - 由于插入另一列,阻止 Pandas 将 int 转换为 float

我有一个DataFrame有两列:一列int和一列str。我了解如果我将NaN插入int列,Pandas会将所有int转换为float因为int没有NaN值。但是,当我将None插入str列时,Pandas会将我的所有int转换为float为出色地。这对我来说没有意义-为什么我在第2列中输入的值会影响第1列?这是一个简单的工作示例):importpandasaspddf=pd.DataFrame()df["int"]=pd.Series([],dtype=int)df["str"]=pd.Series([],dtype=str)df.loc[0]=[0,"zero"]print(df)

python - 用python从二进制文件中读取32位带符号的ieee 754 float ?

我有一个二进制文件,它是一个简单的有符号32位ieee754float列表。它们没有被任何东西隔开,只是一个接一个地出现,直到EOF。我如何从这个文件中读取并将它们正确解释为float?我尝试使用read(4),但它会自动将它们转换为带有ascii编码的字符串。我也尝试过使用bytearray但这一次只需要1个字节,而不是我需要的4个字节。 最佳答案 struct.unpack('f',file.read(4))你也可以一次解包几个,这样会更快:struct.unpack('f'*n,file.read(4*n))

python - 如何在 Bokeh 中使用悬停工具提示显示整数而不是 float

我有一个简单的X-Y数据点图。当我将鼠标悬停在每个数据点上时,我希望我的Bokeh图向我显示每个数据点的整数值。我快要得到我想要的了,但是当我将鼠标悬停在数据点上时,它会显示一个float,然后再向上,它使用科学记数法。有没有办法让悬停工具只返回X和Y的整数值而不使用科学计数法?下面是一些示例代码:frombokeh.plottingimport*frombokeh.modelsimportHoverToolx=range(1,101)y=[i*iforiinx]TOOLS="pan,wheel_zoom,box_zoom,reset,save,box_select,hover"p=f

python - 获取整数和 float 的属性

这个问题在这里已经有了答案:Whydoesn't2.__add__(3)workinPython?(2个回答)7年前关闭。我在玩Python解释器(Python3.2.3)并尝试了以下操作:>>>dir(1)这给了我int对象的所有属性和方法。接下来我尝试:>>>1.__class__然而,这引发了一个异常:File"",line11.__class__^SyntaxError:invalidsyntax当我用浮点数尝试相同时,我得到了我的预期:>>>2.0.__class__为什么要int和float文字的行为不同? 最佳答案 这