Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >分子为0的Numpy log除法给出“除以零”警告

分子为0的Numpy log除法给出“除以零”警告
EN

Stack Overflow用户
提问于 2021-03-28 18:25:01
回答 1查看 552关注 0票数 1

我有120,000 X 120,000个numpy数组,其格式为:

代码语言:javascript
运行
AI代码解释
复制
STEP1: NUMERATOR =

[[8.85191777e-12 0.00000000e+00 6.62258993e-12 ... 0.00000000e+00
 0.00000000e+00 0.00000000e+00]
:
[0.00000000e+00 1.22870643e-11 0.00000000e+00 ... 0.00000000e+00
 0.00000000e+00 0.00000000e+00]]

我有另一个(120,000,) numpy数组,叫做DENOMINATOR。

代码语言:javascript
运行
AI代码解释
复制
STEP2 DENOMINATOR =
[8.85191777e-12 0.00000000e+00 6.62258993e-12 ... 0.00000000e+00
 0.00000000e+00 0.00000000e+00]

To avoid a "divide by zero" error, I updated DENOMINATOR array as
DENOMINATOR = DENOMINATOR + 0.00000000000001

现在我们找到一个NEW_DENOMINATOR,如下所示:

代码语言:javascript
运行
AI代码解释
复制
STEP3:

NEW_DENOMINATOR = np.multiply.outer(DENOMINATOR, DENOMINATOR)
which results in  a 120,000 X 120,000 matrix as follows:

[[1.78266171e-13 5.62788054e-13 5.75945750e-13 ... 6.33114532e-18
 2.82924941e-18 4.22215788e-21]
:
[5.62788054e-13 1.77672741e-12 1.81826639e-12 ... 1.99874880e-17
 8.93196817e-18 1.33293939e-20]]

我想要执行的计算是: np.log2(NUMERATOR/NEW_DENOMINATOR),但是我仍然收到以下错误:

代码语言:javascript
运行
AI代码解释
复制
RuntimeWarning: divide by zero encountered in log2
output=np.log2(NUMERATOR/NEW_DENOMINATOR)

and the output looks like:
[[5.63388519       -inf 3.5233907  ...       -inf       -inf       -inf]
[      -inf 2.78984599       -inf ...       -inf       -inf       -inf]
:
[5.63388519       -inf 3.5233907  ...       -inf       -inf       -inf]
[      -inf 2.78984599       -inf ...       -inf       -inf       -inf]

]

python显示此警告的是什么?结果包含inf,这意味着执行了除以0。为什么即使分母不包含0,也会发生这种情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-28 18:34:16

“被零除”的警告有点令人困惑,因为在NUMERATOR/NEW_DENOMINATOR中(很有可能)没有被零除。相反,您正在尝试计算零值的log2。在内部,numpy很可能会根据log2的输入执行除法运算,并给出此警告。

请记住,没有定义零的对数;从正侧逼近零的对数的极限是−∞。如果仔细查看输出,您会发现这也是存储在输出中的值,而不是正无穷大。如下图所示,log2(x)作为x的函数(source: Wikipedia

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66844763

复制
相关文章
location.hash详解[通俗易懂]
一般情况下为URL后 “#” 及其后面一部分组成,如http://www.test.com/#/something,
全栈程序员站长
2022/09/14
4710
怎么自动刷新jwt?
如果用户一直在操作,当jwt颁发的token凭证到了过期时间需要有一个机制能自动延长过期时间。除非用户长时间没有操作,那是需要强制重新登录的。
蛋蛋编程手记
2022/07/27
3.3K0
自动刷新页面
script> <!--  var limit="0:15" if (document.images){ var parselimit=limit.split(":") parselimit=parselimit[0]*60+parselimit[1]*1 } function beginrefresh(){ if (!document.images) return if (parselimit==1) window.location.reload() else{  parselimit-=1 curmin
张善友
2018/01/19
2.5K0
前端自动刷新工具
Browsersync能让浏览器实时、快速响应您的文件更改(html、js、css、sass、less等)并自动刷新页面。更重要的是 Browsersync可以同时在PC、平板、手机等设备下进项调试。
李维亮
2021/07/09
1.1K0
javascript_时间自动刷新
=========================================================
Hongten
2018/09/13
1.8K0
javascript_时间自动刷新
Weex iOS端的自动刷新和调试
最近开始接触weex。目前weex尚不成熟,官方文档有些粗糙,初学者难免碰壁。这里分享两条我的初学经验,供参考。
全栈程序员站长
2022/07/20
1.2K0
Weex iOS端的自动刷新和调试
为什么你学不会递归?
可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了!
Java3y
2019/11/18
5690
为什么C++不会衰老
Thoughts about C++ in the modern world. 一些关于当代C++的思考。 Debates about the present state of C++ in t
程序员的酒和故事
2018/03/12
9620
为什么C++不会衰老
Python 的切片为什么不会索引越界?
切片(slice)是 Python 中一种很有特色的特性,在正式开始之前,我们先来复习一下关于切片的知识吧。
Python猫
2021/12/20
1.6K0
Python 的切片为什么不会索引越界?
通过MySQL自动同步刷新Redis
在服务端开发过程中,一般会使用MySQL等关系型数据库作为最终的存储引擎,Redis其实也可以作为一种键值对型的数据库,但在一些实际场景中,特别是关系型结构并不适合使用Redis直接作为数据库。这俩家伙简直可以用“男女搭配,干活不累”来形容,搭配起来使用才能事半功倍。本篇我们就这两者如何合理搭配以及他们之间数据如何进行同步展开。 一般地,Redis可以用来作为MySQL的缓存层。为什么MySQL最好有缓存层呢?想象一下这样的场景:在一个多人在线的游戏里,排行榜、好友关系、队列等直接关系数据的情景下,如果直接
逸鹏
2018/04/11
8K0
通过MySQL自动同步刷新Redis
C语言为什么不会过时?
评价任何一门编程语言,都是招人骂的。永远是这样。就像是春寒料峭的季节,街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:“傻逼!”这个在心理学上有个专业的名字:叫做“二逼”现象!
帅地
2020/07/03
1.6K0
为什么你学不会Appium
- 基于webdriver协议,看着眼熟不?没错就是和selenium webdriver同源的机制
苦叶子
2019/09/12
6220
学习分享——location.hash的用法「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。 【学习分享】location.hash的用法 location对象:设置或获取当前URL的信息 使用location对象可以设置或返回URL中的一些信息,一个
全栈程序员站长
2022/09/07
8610
为什么C语言不会过时?
评价任何一门编程语言,都是招人骂的。 永远是这样。就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:“傻逼!”这个在心理学上有个专业的名字:叫做“二逼”现象!
CSDN技术头条
2019/10/10
9780
为什么C语言不会过时?
为什么C语言不会过时?
来源:赵岩老师的个人网站:http://zhaoyan.website/blog/index.php/2017/07/15/future/
帅地
2019/02/26
1.2K0
你为什么学不会lambda
这个一篇对学习 Lambda 表达式进行解惑的文章,主要是总结了自己在学习 Lambda 表达式时候的一些理解不了的坑进行总结。长篇大论和详细语法,自行谷歌,这里只说一些理解起来不顺的概念。
潇洒
2023/10/20
1070
你为什么学不会lambda
这个一篇对学习 Lambda 表达式进行解惑的文章,主要是总结了自己在学习 Lambda 表达式时候的一些理解不了的坑进行总结。长篇大论和详细语法,自行谷歌,这里只说一些理解起来不顺的概念。
潇洒
2019/07/03
6340
你为什么学不会lambda
SwipeRefreshLayout实现上拉下拉刷新
1:在布局中添加SwipeRefreshLayout和Listview组件 [html] view plain copy <?xml version="1.0" encoding="utf-8
xiangzhihong
2018/02/02
1.1K0
点击加载更多

相似问题

在我的global.asax中,我可以输出当前触发的路由/动作吗?

21

在JavaFX中哪个动作按钮可以触发?

25

我可以在Selenuim中选择动作元素吗?

21

蓝牙可以触发应用程序中的某个动作吗?

20

Memcached是为我准备的吗?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档