Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays numpy数组计算中忽略错误警告_Arrays_Numpy_Warnings - Fatal编程技术网

Arrays numpy数组计算中忽略错误警告

Arrays numpy数组计算中忽略错误警告,arrays,numpy,warnings,Arrays,Numpy,Warnings,您好,我想知道是否可以使用类似“try-except”的方法来避免错误警告,并将np.nan放入结果数组中 比如说 import numpy as np a = np.array([1,1]) b = np.array([1,0]) c = a/b 将出现“零除误差” 我希望忽略此错误,并将c作为np.array([1,np.nan])获取 我知道我可以使用循环并尝试通过迭代数组中的所有元素来实现这一点。然而,有没有一种更优雅的方法来实现这一点而不使用循环 如果必须是一个循环,那么最快的方法是

您好,我想知道是否可以使用类似“try-except”的方法来避免错误警告,并将np.nan放入结果数组中

比如说

import numpy as np
a = np.array([1,1])
b = np.array([1,0])
c = a/b
将出现“零除误差” 我希望忽略此错误,并将c作为np.array([1,np.nan])获取

我知道我可以使用循环并尝试通过迭代数组中的所有元素来实现这一点。然而,有没有一种更优雅的方法来实现这一点而不使用循环

如果必须是一个循环,那么最快的方法是什么

In [219]: a = np.array([1,1]) 
     ...: b = np.array([1,0]) 
     ...: c = a/b                                                                              
/usr/local/bin/ipython3:3: RuntimeWarning: divide by zero encountered in true_divide
  # -*- coding: utf-8 -*-
In [220]: c                                                                                    
Out[220]: array([ 1., inf])
/
替换为
除法
。作为
ufunc
它接受
where
out
参数,它们一起工作以跳过0并放置
nan

In [224]: np.divide(a,b, where=(b!=0), out=np.full(a.shape,np.nan))                            
Out[224]: array([ 1., nan])
也可以抑制警告,但这不会将
inf
替换为
nan
。此
ufunc
代码是实现这两种功能的最简单方法


这是否回答了您的问题?