草庐IT

floating-point-conversion

全部标签

python - 动画化 mayavi points3d 图

我正在尝试制作粒子轨迹的视频。但是,不知何故我的场景永远不会更新。这是一个非常简单的例子:from__future__importabsolute_import,division,print_functionfrommayaviimportmlabimportnumpyasnpimportmathalpha=np.linspace(0,2*math.pi,100)xs=np.cos(alpha)ys=np.sin(alpha)zs=np.zeros_like(xs)mlab.points3d(0,0,0)plt=mlab.points3d(xs[:1],ys[:1],zs[:1])@m

python - Python如何将bytes转为float?

我有以下代码片段:#!/usr/bin/envpython3print(float(b'5'))它打印5.0没有错误(在使用utf-8编码的Linux上)。我很惊讶它没有给出错误,因为Python不应该知道字节对象使用什么编码。有什么见解吗? 最佳答案 当传递一个bytes对象时,float()将对象的内容视为ASCII字节。这在这里就足够了,因为从字符串到float的转换只接受ASCII数字和字母,加上.和_无论如何(唯一允许的非ASCII代码点是空格代码点),这类似于int()处理bytes输入的方式。在幕后,实现是这样做的:因

python - Pandas 将字符串转换为数据框中多列的 float

我是pandas的新手,正在尝试弄清楚如何将格式化为字符串的多个列转换为float64。目前我正在做下面的事情,但似乎apply()或applymap()应该能够更有效地完成这项任务……不幸的是,我有点太菜鸟了,不知道如何做。目前,这些值是百分比格式,格式为字符串,如“15.5%”forcolumnin['field1','field2','field3']:data[column]=data[column].str.rstrip('%').astype('float64')/100 最佳答案 从0.11.1开始(本周发布),rep

python - 在导入的 .csv 中将字符串更改为 float

针对我未能快速解决的问题的快速提问:我正在处理.csv文件,但似乎找不到将字符串转换为float的简单方法。这是我的代码,importcsvdefreadLines():withopen('testdata.csv','rU')asdata:reader=csv.reader(data)row=list(reader)forxinrow:foryinx:printtype(float(y)),readLines()如您所见,它当前将打印变量行中x组列表中的每个y元素的类型;这会产生一长串"".但这实际上并没有将每个元素更改为float,也没有将for循环设置为执行float(y)。(类

python - 在 Pandas 中将 float 转换为字符串

我对Pandas中的数据类型“object”有点困惑。“对象”到底是什么?我想将变量“SpT”(见下文)从对象更改为字符串。>df_cleaned.dtypesVmagfloat64RAfloat64DEfloat64Plxfloat64pmRAfloat64pmDEfloat64B-Vfloat64SpTobjectM_Vfloat64distancefloat64dtype:object为此,我执行以下操作:df_cleaned['SpT']=df_cleaned['SpT'].astype(str)但这对SpT的dtype没有影响。这样做的原因是当我执行以下操作时:f=lambd

python - 获取并操作 float 的位模式作为整数

在Python2.5中,我有一个float,我想获取它的位模式并将其作为整数进行操作。例如,假设我有x=173.3125在IEEE754格式中,x的十六进制位模式是432D5000。我如何获取和操作(例如,执行按位运算)该位模式? 最佳答案 您可以使用struct模块获取您想要的字符串(显然意味着大端、32位表示;Python在内部使用native字节序和64位float):>>>importstruct>>>x=173.125>>>s=struct.pack('>f',x)>>>''.join('%2.2x'%ord(c)forc

python - 将 float 转换为逗号分隔的字符串

我如何将float转换成它的“会计形式”——100028282.23-->100,028,282.23100028282-->100,028,282.00是否有python方法可以做到这一点? 最佳答案 作为beerbajay的替代品的优秀答案,简单的字符串格式适用于2.7+,无需导入:>>>'{0:,.2f}'.format(24322.34)'24,322.34' 关于python-将float转换为逗号分隔的字符串,我们在StackOverflow上找到一个类似的问题:

Python float 比较

我只是在复习Python的一些基础知识,比较float有一个棘手的问题。2.2*3.0==6.63.3*2.0==6.6我认为这些都应该返回False。然而,第二个给了我一个真实的。请帮帮我。谢谢! 最佳答案 这可能很有启发性:>>>float.hex(2.2*3.0)'0x1.a666666666667p+2'>>>float.hex(3.3*2.0)'0x1.a666666666666p+2'>>>float.hex(6.6)'0x1.a666666666666p+2'虽然它们都以十进制显示为6.6,但是当您检查内部表示时,其中

python - pandas shift 将我的列从整数转换为 float 。

shift将我的列从整数转换为float。事实证明np.nan只是float。有什么方法可以将移位后的列保持为整数吗?df=pd.DataFrame({"a":range(5)})df['b']=df['a'].shift(1)df['a']#00#11#22#33#44#Name:a,dtype:int64df['b']#0NaN#10#21#32#43#Name:b,dtype:float64 最佳答案 pandas0.24以下解决方案:问题是你得到NaN值什么是float,所以int被转换为float-见natypepromo

python - 为什么 Ruby 的 Float#round 行为与 Python 不同?

"Behaviorof“round”functioninPython"观察到Python圆像这样float:>>>round(0.45,1)0.5>>>round(1.45,1)1.4>>>round(2.45,1)2.5>>>round(3.45,1)3.5>>>round(4.45,1)4.5>>>round(5.45,1)5.5>>>round(6.45,1)6.5>>>round(7.45,1)7.5>>>round(8.45,1)8.4>>>round(9.45,1)9.4接受的答案确认这是由float的二进制表示不准确引起的,这是合乎逻辑的。假设Ruby的float和Pyt