逐元素比较失败;返回标量,但将来将执行元素比较

Posted

技术标签:

【中文标题】逐元素比较失败;返回标量,但将来将执行元素比较【英文标题】:elementwise comparison failed; returning scalar, but in the future will perform elementwise comparison 【发布时间】:2020-04-07 21:02:13 【问题描述】:
n1data = pcatrain_data[train_labels[0, :] == i, :]
n2data = pcatrain_data[train_labels[0, :] == j, :]

pcatrain_data 的形状是 (14395,40) train_labels 的形状是 (1,14395)

据我了解,“train_labels[0, :] == i”将返回大小为 14395 的布尔值列表,其值为 true,且等于 i。

而且由于 pcatrain_data 的大小为 14395,它不应该导致任何错误。

这是导致问题的代码。 我正在尝试从 pcatrain_data 的特定行中获取所有列。 我想要 train_labels[0, :] == i 的行。

我不知道为什么会出现这个错误,因为我以前做过这个并且它有效。都在python3中

错误是“FutureWarning:元素比较失败;返回标量,但将来会执行元素比较”

【问题讨论】:

请不要将代码添加为图像。将其编辑到问题的正文中 【参考方案1】:

你需要写

import warnings
import numpy as np
warnings.simplefilter(action='ignore', category=FutureWarning)

然后警告就会消失

【讨论】:

虽然这确实删除了警告,但根本问题仍然存在。

以上是关于逐元素比较失败;返回标量,但将来将执行元素比较的主要内容,如果未能解决你的问题,请参考以下文章

为啥我得到这个错误结果=方法(y)FutureWarning:元素比较失败;而是返回标量

Python loc + isin 返回 FutureWarning(元素比较失败)

Scipy CSR 矩阵逐元素加法

逐元素字符串比较

来自逐元素逻辑比较的 MATLAB 逻辑矩阵的 Python 等效项

比较列表haskell中的所有元素[重复]