问题描述
Numpy 的最新版本 1.20 workbox-background-sync
library。这很棒,而且像 mypy 这样的工具,现在不再抱怨 Numpy 缺少类型信息,而是抱怨你的代码。
这个简单的例子计算 n 维的 m 个点的质心,它总是返回一个点:
from numpy import ndarray
def centroid(points: ndarray) -> ndarray:
return points.mean(axis=0)
在 Numpy 1.20 之前,mypy 抱怨 Skipping analyzing numpy
。现在它说
Mypy:不兼容的返回值类型(得到“Union[number[Any],ndarray]”,预期为“ndarray”)
因为mean()
可能返回一个数字或一个数组,但centroid()
的返回值只能是一个数组。
无需增加执行时间即可避免警告
return cast(ndarray,points.mean(axis=0))
或者干脆
return points.mean(axis=0) # type: ignore
有没有更好的方法而不需要额外的计算?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)