最近,我用SCRICKIT-LEARN包用Python做了一些ML方面的工作. 我想使用make_blobs()函数,所以我开始编写代码,例如:

X, y = make_blobs(n_samples=m, centers=2, n_features=2,  center_box=(80, 100))

当然,这很好.

然而,在编写下一行代码时,我在Visual Studio代码中的IntelliSense开始在我前面提到的那一行上显示奇怪的错误(我只安装了用于Python的Microsoft插件).

以下是完整的错误消息:

不能将类型为"tuple[UNKNOWN|LIST[UNKNOWN]|ND数组[FLOAT64],UNKNOWN|LIST[UNKNOWN]|ND数组[ANY],ndarray[ANY,dtype[FLOAT64]]|ANY]|TUPLE[UNKNOWN|LIST[UNKNOWN]|ND数组[FLOAT64],UNKNOWN|LIST[UNKNOWN]|ND数组[ANY]"的表达式赋给目标元组 类型"tuple[UNKNOWN|LIST[UNKNOWN]|ND数组[FLOAT64],UNKNOWN|LIST[UNKNOWN]|ND数组[ANY],ndarray[ANY,dtype[FLOAT64]]|ANY]"与目标元组不兼容 发现元素大小不匹配;预期为%2,但收到%3

请注意最后一句话.Make_BLOBS()函数返回3个元素时,元素大小不匹配.什么? 我查阅了有关make_blobs()函数的SCRICKIT-LEARN文档,我读到默认的make_blobs()只返回2个元素,而不是3个元素. 当return_centers设置为True时,可以返回3个元素,而我没有将其设置为True,如您在我的示例中所见.

好的,也许我会试着期待这3个元素,所以我修改了那行

X, y, _ = make_blobs(n_samples=m, centers=2, n_features=2,  center_box=(80, 100))

那好吧...这是错误消息...

不能将类型为"tuple[UNKNOWN|LIST[UNKNOWN]|ND数组[FLOAT64],UNKNOWN|LIST[UNKNOWN]|ND数组[ANY],ndarray[ANY,dtype[FLOAT64]]|ANY]|TUPLE[UNKNOWN|LIST[UNKNOWN]|ND数组[FLOAT64],UNKNOWN|LIST[UNKNOWN]|ND数组[ANY]"的表达式赋给目标元组 类型"tuple[UNKNOWN|LIST[UNKNOWN]|ND数组[FLOAT64],UNKNOWN|LIST[UNKNOWN]|ND数组[ANY]]"与目标元组不兼容 %1个元素大小不匹配;预期为%3,但收到%2

现在它返回2个元素?!

我接下来try 的是:

  • 重新安装SCRIPKIT-学习包.同样的效果
  • 正在清除包含所有it文件的Python.同样的效果
  • 正在重新安装适用于vscode的Microsoft Python扩展.同样的效果

显然这是某种智能感知问题,因为运行代码运行得很好,但是是什么导致了这种行为呢?

我使用的是3.10.9和3.11.1.

在Windows 10 22H2 19045.2364上运行.

VSCode为最新版本.

为了完整,SCRICKIT-学习版本是1.2.0

推荐答案

这是一种已知的pyright行为(它是在IntelliSense中使用的一种Python类型判断器).如果函数中至少有一条RETURN语句与您期望的内容不兼容,则会引发返回类型不匹配警告.有关详细信息和其中一位维护人员的解释,请参阅他们的回购中的similar issue.

不过,您可以使用注释对这一特定行进行suppress类型判断:

X, y = make_blobs(n_samples=m, centers=2, n_features=2,  center_box=(80, 100)) # pyright: ignore

Python相关问答推荐

OpenGL仅渲染第二个三角形,第一个三角形不可见

Cython无法识别Numpy类型

polars:有效的方法来应用函数过滤列的字符串

如果包含特定值,则筛选Groupby

语法错误:文档. evaluate:表达式不是合法表达式

我可以不带视频系统的pygame,只用于游戏手柄输入吗?''

try 在单个WITH_COLUMNS_SEQ操作中链接表达式时,使用Polars数据帧时出现ComputeError

保存由PYTHON在EXCEL中所做更改的问题

如何更改网络中某条边的位置(&Q;)?

查找系统上安装的所有Python

PySpark:使用重置对窗口进行计数

如何从表示音频的Numy数组中提取持续时间和偏移量?

从数据帧中的字符串中剥离除字母数字字符以外的所有字符

try 使用双反斜杠将反斜杠替换为另一个符号,但失败

如何让QML菜单考虑布局镜像?

将公钥字节加载为DH密钥

为什么我在解析pdf文件时会得到两组不同的坐标?

如何分组并查找新的或正在消失的项目

设置gtuner计算机视觉时遇到问题

求和到目标的组合的递归函数中的记忆问题