如何在python numpy中为nan值引发错误

2024-04-25 08:12:20 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我在numpy数组中使用“/”运算符除以零,我需要自动引发一个错误,或者如果我执行任何操作,则更好,这将导致nan

numpy所做的是返回nan值。我不需要我的程序运行之后,因为这显然是一个错误

我想知道什么时候用零除法,在哪一行。只是禁止创造任何价值的南


Tags: numpy程序运行错误运算符数组nan价值
2条回答

你可以这样做:

# sample data
arr1 = np.array([1,2,3,4])
arr2 = np.array([1,1,0,1])

# this will raise the error
assert (arr2!=0).all(), 'Division by zero'

# divide
arr1/arr2

当你运行代码时,你会得到:

      4 
      5 # this will raise the error
  > 6 assert (arr2!=0).all(), 'Division by zero'
      7 
      8 # divide

AssertionError: Division by zero

默认行为是发出警告,但可以使用np.seterr设置该行为:

>>> import numpy as np
>>> np.array([1,2,3]) / np.array([0, 1, 2])
__main__:1: RuntimeWarning: divide by zero encountered in true_divide
array([inf, 2. , 1.5])

我们将其更改为“提高”后:

>>> np.seterr(divide='raise')
{'divide': 'warn', 'over': 'warn', 'under': 'ignore', 'invalid': 'warn'}
>>> np.array([1,2,3]) / np.array([0, 1, 2])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FloatingPointError: divide by zero encountered in true_divide

相关问题 更多 >