我会尽我最大的努力来表达这一点,尽管我是新手,并乞求你的宽容:
我使用下面的代码找到最适合我从物理温度传感器动态读取的某些数据的多项式:

coefficients = numpy.polyfit(x, y, 2)
polynomial = numpy.poly1d(self.coefficients)

#and then I using matpltlib to plot
matplotlib.pyplot.plot(self.x, self.y, 'o')

有时,我不会收到足够的数据,因此我会得到一个错误:
rankwarning:polyfit可能是条件较差的警告。warn(msg,rankwarning)
很公平。这是我需要做的(并且不能):如果我从polyfit中得到异常,那么我不想尝试绘制。换句话说,当我得到异常时,我需要采取行动,而不仅仅是忽略异常。我在numpy文档中找到的一些代码仅仅忽略了异常
import warnings
warnings.simplefilter('ignore', np.RankWarning)

我尝试过使用Try-Except,但在这种情况下不起作用(我对不同类型的异常有一个基本的了解,尽管我计划很快阅读)。
感谢您的建议!

最佳答案

import numpy as np
import warnings
x = [1]
y = [2]

with warnings.catch_warnings():
    warnings.filterwarnings('error')
    try:
        coefficients = np.polyfit(x, y, 2)
    except np.RankWarning:
        print "not enought data"

关于python - 如何在numpy中处理np.RankWarning?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21252541/

10-12 17:57