实例化AnomalyDetector时出现numpy无asscalar属性错误求助
解决Luminol库调用numpy.asscalar引发的AttributeError问题
问题原因
numpy从1.23版本起移除了numpy.asscalar()方法,而当前使用的Luminol库版本仍在调用该方法,导致兼容性错误。
解决方案
方案1:降级numpy至兼容版本
安装1.23以下的numpy版本,直接适配旧版Luminol:
pip install numpy<1.23
方案2:修改Luminol源代码修复兼容问题
找到Luminol库的time_series.py文件(示例路径:/usr/local/lib/python3.10/dist-packages/luminol/modules/time_series.py),定位到max方法的第337行:
return numpy.asscalar(numpy.max(self.values)) if self.values else default
将其替换为:
return numpy.max(self.values).item() if self.values else default
numpy.ndarray.item()是官方推荐替代asscalar的方法,可将标量数组转换为Python原生数值类型。
方案3:使用修复后的Luminol分支
寻找社区维护的、已修复numpy兼容性问题的Luminol分支,直接安装对应版本的包。
内容的提问来源于stack exchange,提问作者yyyy
相关产品推荐
相关产品推荐

