我需要以x
以下方式进行计算(旧版代码):
x = numpy.where(b == 0, a, 1/b)
我想它可以在python-2.x中工作),但是在python-3.x中不工作(if b = 0
它返回错误)。
如何使其在python-3.x中工作?
编辑:错误消息(Python 3.6.3):
ZeroDivisionError: division by zero
该numpy.where
文档指出:
如果
x
和y
被赋予与输入的数组是1-d,where
相当于::[xv if c else yv for (c,xv,yv) in zip(condition,x,y)]
那么,为什么会看到错误?举个简单的例子:
c = 0
result = (1 if c==0 else 1/c)
# 1
到现在为止还挺好。if c==0
首先检查,结果为1
。该代码不会尝试进行评估1/c
。这是因为Python解释器处理一个 惰性
三元运算符,因此仅求值适当的表达式。
现在,我们将其转换为numpy.where
方法:
c = 0
result = (xv if c else yv for (c, xv, yv) in zip([c==0], [1], [1/c]))
# ZeroDivisionError
zip([c==0], [1], [1/c])
即使在应用逻辑之前,评估中也会发生错误。生成器表达式本身无法求值。作为一个函数,numpy.where
不能也确实不能复制Python三元表达式的惰性计算。
问题内容: 我有一个称为dists的距离数组。我想选择两个值之间的距离。我编写了以下代码行: 但是,这仅针对条件选择 如果我使用临时变量按顺序执行命令,则可以正常工作。为什么上面的代码不起作用,如何使它起作用? 干杯 问题答案: 在 您的特定情况下 ,最好的方法 是 将两个条件更改为一个条件: 它仅创建一个布尔数组,在我看来是更易于阅读,因为它说, 是内部的还是?(尽管我将重新定义为您感兴趣的区域
问题内容: 我正在寻找用numpy中的NaN替换数字,并正在寻找类似numpy.nan_to_num的函数,除非相反。 由于每个数组都可以具有唯一定义的NoDataValue,因此该数字可能会随着处理不同的数组而改变。我看到人们使用字典,但是数组很大,并且充满了正负浮点数。我怀疑尝试将所有这些加载到任何东西以创建密钥的效率不高。 我尝试使用以下内容和numpy要求我使用any()或all()。我意
问题内容: 我正在尝试找到掩盖段的索引。例如: 当前的解决方案看起来像这样(并且 非常 慢,因为我的掩码包含数百万个数字): 有什么办法可以用numpy有效地做到这一点? 我设法对google进行的唯一操作是numpy.ma.notmasked_edges,但它看起来不像我所需要的。 问题答案: 这是一种方法- 样品运行- 用它来获得- 在计时扩大命令datasize -
我做java已经4个月了,所以我还是一个业余爱好者。只是想搞定一些hwk。我似乎找不到正确的技巧来让我的分母通过拒绝文本数据和零,同时保持循环错误消息来很好地发挥作用。另一个问题是,无论分子/分母是什么,我的商都是0.0。有很多问题,任何建议都很感谢。指示如下: --这个程序接受用户输入的(int)分子和(int)分母,然后计算并显示(双)商。 --如果用户为分子输入的是文本而不是数字,则显示一条
主要内容:1.概述,2.doExportUrls,3. Protocol1.概述 Dubbo 服务暴露有两种方式 本地暴露,JVM 本地调用。配置如下: <dubbo:service scope=“local” /> <dubbo:service scope=“remote” /> 在不配置 scope 的情况下,默认两种方式都暴露。 2.doExportUrls 本地暴露服务的顺序图如下: 我们看到 ServiceConfig#export() 方法中,会在配置初始
本文向大家介绍ajax获取用户所在地天气的方法,包括了ajax获取用户所在地天气的方法的使用技巧和注意事项,需要的朋友参考一下 使用ajax获取用户所在地的天气,供大家参考,具体内容如下 1.要获取用户归属地的天气,首先得获取用户所在的市区,这里先获取用户的IP,通过IP获取IP的归属地,从而得到用户地址。 2.因为阿里云提供了通过城市名(city)或者城市编号(cityId) 即可获取天气的AP