草庐IT

floating-point-conversion

全部标签

python - id(float) 的相同值

据我所知,Python中的一切都是对象,id()应该(我说得对吗?)为每个对象返回不同的数字。在我的例子中,id(1)返回4298178968,id(2)返回4298178944但我为所有float类型获取相同的值,id(1.1)返回4298189032,id(2.2)也返回4298189032等等。为什么所有浮点值都得到相同的id? 最佳答案 Python可以重用内存位置。当你运行时:id(1.1)您创建了一个浮点值,请求它的id(),然后Python再次删除该值,因为没有任何内容引用它。当您随后创建另一个float值时,Pyth

python "TypeError: ' numpy.float6 4' object cannot be interpreted as an integer"

importnumpyasnpforiinrange(len(x)):if(np.floor(N[i]/2)==N[i]/2):forjinrange(N[i]/2):pxd[i,j]=x[i]-(delta*j)*np.sin(s[i]*np.pi/180)pyd[i,j]=y[i]-(delta*j)*np.cos(s[i]*np.pi/180)else:forjinrange((N[i]-1)/2):pxd[i,j]=x[i]-(delta*j)*np.sin(s[i]*np.pi/180)pyd[i,j]=y[i]-(delta*j)*np.cos(s[i]*np.pi/180

python - Pandas :ValueError:无法将 float NaN 转换为整数

我得到ValueError:cannotconvertfloatNaNtointeger如下:df=pandas.read_csv('zoom11.csv')df[['x']]=df[['x']].astype(int)“x”是csv文件中的一列,我无法在文件中发现任何floatNaN,而且我不明白错误或为什么会出现错误。当我将该列读取为字符串时,它的值类似于-1,0,1,...2000,对我来说都是非常好的int数字。当我将列读取为float时,就可以加载它了。然后它将值显示为-1.0,0.0等,仍然没有任何NaN-s我尝试在read_csv中使用error_bad_lines=Fa

python - 如何在尾部加一到 Python 中的 float ?

有没有一种简单直接的方法可以在Python中的float处添加“1”?我的意思是:ifa==0.0143:a=plus(a)asserta==0.0144defplus(a):sa=str(a)index=sa.find('.')ifindex这不是我想要的,因为它给了我0.0144000000001。 最佳答案 正如您所注意到的,并不是所有的十进制数都可以精确地表示为float:>>>Decimal(0.1)Decimal('0.100000000000000005551115123125782702118158340454101

python - 如何用doctest测试 float 结果?

我正在开发一个进行一些浮点计算的程序。有什么方法可以用doctests测试我的功能(提供float)? 最佳答案 当然,只需根据您对float所期望的精度的了解,使用合理的格式来格式化float——例如,如果您期望精确到小数点后2位数字,则可以使用:'''Restofyourdocstringandthen...>>>'%.2f'%funcreturningfloat()'123.45'''' 关于python-如何用doctest测试float结果?,我们在StackOverflow上

python - 我可以将 float128 设置为 numpy 中的标准 float 组吗

所以我的数值程序有问题,我很好奇是不是精度问题(即舍入误差)。有没有一种快速的方法可以将我程序中的所有float组更改为float128数组,而无需遍历我的代码并在各处键入dtype='float128'。我的数组都是float64,但我从未明确写过dtype='float64',所以我希望有一种方法可以改变这种默认行为。 最佳答案 我不认为您可以更改中央“配置”来实现此目的。您可以做的一些选择:如果您仅通过NumPy的少数工厂函数创建数组,请将这些函数替换为您自己的版本。如果你像这样导入这些函数fromnumpyimportemp

python - 比较 Pandas 列中的 float

我有以下数据框:actual_creditmin_required_credit00.30.410.50.220.40.430.20.3我需要添加一个列来指示actual_credit>=min_required_credit。结果将是:actual_creditmin_required_creditresult00.30.4False10.50.2True20.40.4True30.10.3False我正在做以下事情:df['result']=abs(df['actual_credit'])>=abs(df['min_required_credit'])但是第3行(0.4和0.4)总

python - Pandas 将 float 转换为没有小数的字符串

我有一个数据框df=pd.DataFrame([['2','3','nan'],['0','1','4'],['5','nan','7']])printdf012023nan101425nan7我想将这些字符串转换为数字并对列求和并转换回字符串。使用astype(float)似乎让我进入了数字部分。然后用sum()求和就很容易了。然后使用astype(str)返回字符串应该也很容易df.astype(float).sum().astype(str)07.014.0211.0dtype:object这几乎就是我想要的。我想要整数的字符串版本。但是float有小数点。我该如何摆脱它们?我要

python - TensorFlow:将 float64 张量转换为 float32

我正在尝试使用:train=optimizer.minimize(loss)但标准优化器不适用于tf.float64。因此,我想将我的loss从tf.float64截断为仅tf.float32。Traceback(mostrecentcalllast):File"q4.py",line85,intrain=optimizer.minimize(loss)File"/Library/Python/2.7/site-packages/tensorflow/python/training/optimizer.py",line190,inminimizecolocate_gradients_w

python - NumPy 性能 : uint8 vs. float 和乘法与除法?

我刚刚注意到,仅将乘法改为除法,我的脚本的执行时间几乎减半。为了调查这个,我写了一个小例子:importnumpyasnpimporttimeit#uint8arrayarr1=np.random.randint(0,high=256,size=(100,100),dtype=np.uint8)#float32arrayarr2=np.random.rand(100,100).astype(np.float32)arr2*=255.0defarrmult(a):"""mult,read-writeiterator"""b=a.copy()foriteminnp.nditer(b,op_