我想这样使用numpy.exp
:
cc = np.array([
[0.120,0.34,-1234.1]
])
print 1/(1+np.exp(-cc))
但这给了我错误:
/usr/local/lib/python2.7/site-packages/ipykernel/__main__.py:5: RuntimeWarning: overflow encountered in exp
我不明白为什么?我怎样才能解决这个问题?看来问题出在第三个数字上(-1234.1)
就像fuglede所说,这里的问题是np.float64
无法处理最大为的数字exp(1234.1)
。尝试np.float128
改用:
>>> cc = np.array([[0.120,0.34,-1234.1]], dtype=np.float128)
>>> cc
array([[ 0.12, 0.34, -1234.1]], dtype=float128)
>>> 1 / (1 + np.exp(-cc))
array([[ 0.52996405, 0.58419052, 1.0893812e-536]], dtype=float128)
但是请注意,使用扩展精度存在某些怪癖。它可能无法在Windows上运行;您实际上并没有获得完整的128位精度;当数字通过纯python时,您可能会失去精度。您可以在此处阅读有关详细信息的更多信息。
对于大多数实际目的,您可能近似1 / (1 + <a large number>)
为零。也就是说,只要忽略警告并继续前进即可。Numpy会为您处理近似值(使用时np.float64
):
>>> 1 / (1 + np.exp(-cc))
/usr/local/bin/ipython3:1: RuntimeWarning: overflow encountered in exp
#!/usr/local/bin/python3.4
array([[ 0.52996405, 0.58419052, 0. ]])
如果要禁止显示警告,可以使用scipy.special.expit
WarrenWeckesser在对该问题的评论中建议的,:
>>> from scipy.special import expit
>>> expit(cc)
array([[ 0.52996405, 0.58419052, 0. ]])
问题内容: 我在网上搜索过,找不到适合此问题的解决方案 导致此异常的代码 我想知道发生此异常的实际原因,有人说该日期不在有效范围内,但对我来说这没有任何意义,如果可以的话,可以是一个范围。是否取决于我们使用的系统。也想知道这个问题的一个好的解决方案。 谢谢。 问题答案: 从平台的C库调用基础函数。例如,您发布的上述代码对我来说在Mac OS X上运行得很好,尽管它返回的数字是负数,因为日期早于Un
问题内容: Python 2有两个整数数据类型和,并在必要时自动在它们之间进行转换,尤其是为了避免整数溢出。 我正在Python中模拟C函数,并且想知道是否存在重新启用整数溢出的标准方法。对于随机数,我已经使用 有没有更标准的方式来做同样的事情? 问题答案: 我认为基本思路是合理的,但需要进行一些调整: 您的函数不会在上溢出,但是应该; 一次操作可以超过几次; 还需要考虑以下负值。 考虑到这一点,
问题内容: 有了这段代码,我得到了这个答案。为什么我得到负值? 问题答案: 在您的平台上,np.arange返回dtype’int32’的数组: 数组的每个元素都是32位整数。平方导致结果不适合32位。结果被裁剪为32位,并且仍然解释为32位整数,这就是为什么看到负数的原因。 编辑: 在这种情况下,可以通过在平方之前构造dtype’int64’数组来避免整数溢出: 请注意,使用numpy时,发现的
问题内容: 我正在使用Python编写一些加密算法,但是我以前从未使用过Python。 首先,看一下这段代码,然后我将解释这个问题, x和y的值为, 我不明白代码的第三行。为了理解第三行,我不得不研究函数,我遇到了这个问题, zip函数帮助元组 根据这个问题的答案,代码, 将输出, 但是当我尝试打印时, 我得到这个输出, 为什么我的输出与原始输出不同? 问题答案: 在Python 3中返回一个迭代
问题内容: 我有一个具有一列的目标表。我也有一个具有一列的源表,但是该表中的值无论如何都是整数。 当我尝试将数据UPSERT成从通过声明,我得到一个标准错误。 将数字转换为数据类型数字的算术溢出错误。 我真的不明白为什么会发生这种情况,因为两种数据类型都是相同的。 但是,奇怪的是:当我使用on创建测试表,然后将合并目标更改为时,upsert完成。我也不明白为什么会这样,因为并且在大多数情况下都是相
我尝试运行以下代码。 为什么地图功能会打印