Python中文
首页
教程
问答
标签
搜索
登录
注册
比较NumPy阵列以使NAN产生NAN
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<pre><code>import numpy as np </code></pre> <hr/> <p>我有两个阵列:</p> <pre><code>a = np.array([1,2,3,np.nan,5]) b = np.array([3,2,np.nan,5,4]) </code></pre> <p>我想比较一下这两个阵列中的元素&;得到一个布尔值列表作为结果。当比较中涉及<code>nan</code>时,我想得到<code>nan</code>。预期结果:</p> <pre><code>[False, False, nan, nan, True] </code></pre> <hr/> <p>我使用<a href="https://stackoverflow.com/questions/4260280/if-else-in-a-list-comprehension">if-else involving list comprehension</a>实现了所需的输出:</p> <pre><code>[eacha>eachb if ~np.isnan(eacha) and ~np.isnan(eachb) else np.nan for eacha, eachb in zip(a,b)] </code></pre> <hr/> <p>有没有更好的方法(即不涉及for循环,if-else语句)来实现这一点</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以尝试:</p> <pre><code>np.where(np.isnan(a)|np.isnan(b), np.nan, a==b) </code></pre> <p>但是你会得到一个浮点数组,因为<code>np.nan</code>是浮点数组:</p> <pre><code>array([ 0., 1., nan, nan, 0.]) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
pyVISA GPIB GET(组执行触发器)
8 回答
Pyvisa IOerror设备:Korad K3005d电源
3 回答
PyVISA mac OS X(山狮)安捷伦33250
8 回答
Pyvisa Pyusb无法加载大于1 MB的序列
1 回答
pyVisa RS232太慢
3 回答
PyVISA RS232超时错误(安捷伦电源)
1 回答
PyVISA SCPI命令和查询(值更新问题)
9 回答
PyVISA SerialInstrument需要硬重置才能在故障后连接
8 回答
pyvisa,未找到函数viOpen
7 回答
pyVISA:以编程方式将仪器返回到本地模式
9 回答
pyvisa:接口类型是什么意思?
7 回答
pyvisa.errors.VisaIOError:VI_ERROR_TMO(1073807339):操作完成前超时
6 回答
PyVisa“更复杂的示例”根本不运行Keithley 2400不理解的命令
5 回答
PyVisapy后端
5 回答
PyVISA不能写入超过7F的十六进制字符
10 回答
PYVISA中的ENUM模块和cStringIO模块
7 回答
PyVisa代码的图形用户界面
10 回答
Pyvisa使用按键电源超时
10 回答
PyVISA和Kethley 2701只能从一个通道获取结果
7 回答
PyVisa和Printing New D
6 回答