草庐IT

img_float

全部标签

python - 如何将 float 转换为十六进制

在Python中,我需要将一堆float转换为十六进制。它需要补零(例如,0x00000010而不是0x10)。就像http://gregstoll.dyndns.org/~gregstoll/floattohex/做。(遗憾的是我不能在我的平台上使用外部库,所以我不能使用该网站上提供的库)最有效的方法是什么? 最佳答案 这在python中有点棘手,因为不打算将浮点值转换为(十六进制)整数。相反,您尝试解释IEEE754浮点值的二进制表示为十六进制。我们将使用内置struct中的pack和unpack函数图书馆。float是32位的

python - TypeError: Fetch argument has invalid type float32, must be a string or Tensor

我正在训练一个与this中的CNN非常相似的CNN例如,用于图像分割。图片为1500x1500x1,标签大小相同。在定义CNN结构之后,并按照此代码示例启动session:(conv_net_test.py)withtf.Session()assess:sess.run(init)summ=tf.train.SummaryWriter('/tmp/logdir/',sess.graph_def)step=1print("importdata,readfromread_data_sets()...")#Datadefinedbyme,returnsaDataSetobjectwithte

python - 在 keras 中,Float16 比 float32 慢

我正在测试我的新NVIDIATitanV,它支持float16操作。我注意到在训练过程中,float16(~800ms/step)比float32(~500ms/step)慢得多。为了进行float16操作,我将keras.json文件更改为:{"backend":"tensorflow","floatx":"float16","image_data_format":"channels_last","epsilon":1e-07}为什么float16操作这么慢?我是否需要修改我的代码而不仅仅是keras.json文件?我在Windows10上使用CUDA9.0、cuDNN7.0、ten

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))