Arrays numpy数组计算中忽略错误警告
您好,我想知道是否可以使用类似“try-except”的方法来避免错误警告,并将np.nan放入结果数组中 比如说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])获取 我知道我可以使用循环并尝试通过迭代数组中的所有元素来实现这一点。然而,有没有一种更优雅的方法来实现这一点而不使用循环 如果必须是一个循环,那么最快的方法是
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
代码是实现这两种功能的最简单方法
这是否回答了您的问题?