NumPy ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

2024-07-03

我正在 NumPy 中计算矩阵的特征向量和特征值,只是想通过assert陈述。这会引发一个我不太理解的 ValueError,因为打印这些比较效果很好。有什么建议我可以得到这个assert声明有效吗?

import numpy as np
A = np.array([[3,5,0], [5,7,12], [0,12,5]])
eig_val, eig_vec = np.linalg.eig(A)
print('eigenvalue:', eig_val)
print('eigenvector:', eig_vec)

for col in range(A.shape[0]):
    assert (A.dot(eig_vec[:,col])) == (eig_val[col] * eig_vec[:,col])

错误消息很好地解释了这一点:

ValueError: The truth value of an array with more than one element is ambiguous. 
Use a.any() or a.all()

什么应该bool(np.array([False, False, True]))返回?你可以提出几个看似合理的论点:

(1) True, 因为bool(np.array(x))应该返回相同的bool(list(x)),并且非空列表是 truelike;

(2) True,因为至少有一个元素是True;

(3) False,因为并非所有元素都是True;

这甚至没有考虑 N 维情况的复杂性。

因此,由于“具有多个元素的数组的真值不明确”,您应该使用.any() or .all(), 例如:

>>> v = np.array([1,2,3]) == np.array([1,2,4])
>>> v
array([ True,  True, False], dtype=bool)
>>> v.any()
True
>>> v.all()
False

你可能想考虑np.allclose如果您正在比较浮点数组:

>>> np.allclose(np.array([1,2,3+1e-8]), np.array([1,2,3]))
True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NumPy ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all() 的相关文章

随机推荐

  • 在 Android 中删除 Admob 的应用程序内购买

    我已经实现了激活admob的代码 我想引入应用内购买来删除admob 任何人都可以告诉我如何完美地做到这一点 我已经检查了很多教程但不清楚概念 请在这方面帮助我 private ImageView imview private int w
  • 启动画面颜色在 Flutter 中没有变化

    我是 Flutter 新手 仍在练习中 我正在创建一个启动屏幕 但启动屏幕的颜色没有改变 My Code launch background xml
  • Matplotlib 股票行情指示器

    有人可以给我一个如何使用以下 tickFormatters 的示例吗 这docs https matplotlib org api ticker api html对我来说毫无意义 ticker StrMethodFormatter tick
  • 将 json 发布到 spring mvc 控制器

    控制器签名 我也尝试过作为请求主体 RequestMapping value Lame method RequestMethod POST public ResponseBody boolean getLame RequestParam S
  • neo4j 产生“未提供授权标头”错误

    我正在尝试从命令行访问在 aws ec2 实例上运行的 neo4j 但出现授权错误 我已启用org neo4j server webserver address 0 0 0 0并在第一个语句上收到 503 错误 并且使用 ec2 主机名在其
  • Base64编码换行

    我正在尝试在 shell 脚本中将一些十六进制值编码为 base64 nmurshed ugster05 echo n 1906 1d8b fb01 3e78 5c21 85db 58a7 0bf9 a6bf 1e42 cb59 95cd
  • 带有 ñ 等特殊字符的 php

    起初我认为问题是当我从 ajax 调用返回 echo json encode row 时 结果 更改为 NULL 但经过测试 我发现这个问题早在之前就已经存在了 在示例 php 文件中 test Nu ez echo test 结果就是Nu
  • JavaScript 中的 DOM 和 BOM 是什么?

    JavaScript 中的 DOM 和 BOM 是什么 如果有人能用通俗易懂的语言解释这些 那就太好了 我喜欢对这些有更深入的了解 BOM 浏览器对象模型 由以下对象组成navigator history screen location a
  • 在哪里可以找到旧的“开发者协作”插件?

    曾几何时 有一个名为 开发人员协作 的 NetBeans 插件 它允许您进行远程结对编程 现在 在 Netbeans 6 7 中 不再有 开发人员协作 而是有一种称为 Kenai 支持 的东西 不幸的是 Kenai 似乎没有实时编辑器 它似
  • Tobii 眼球追踪器

    我们正在尝试将 Tobii 眼动仪连接到 Ubuntu OS 16 04 6 LTS Nvidia Jetson TX2 模块 然而 当我们想要 pip install tobii research 时 我们不断收到一条错误消息 指出没有找
  • Xcode 版本中的 GM 是什么意思

    我是 xcode 和 ios 开发的新手 最近我看到了 xcode 版本 例如Xcode 6 0 通用版进而Xcode 6 0 我想知道我们应该如何处理 GM 或者我们需要等到非 GM 版本才能构建 ios 应用程序 谁能给我解释一下吗 X
  • 在动态表单上添加规则

    我正在尝试根据后端的 JSON 响应在动态填充的表单上添加验证规则 我正在使用 jQuery 1 9 1 和 jQuery 验证插件 function getItems Id ajax url success function items
  • Python 子类实例的输入签名?

    考虑 from future import annotations class A classmethod def get cls gt A return cls class B A pass def func gt B Line 12 r
  • Android - 比较两个日期

    我想比较我的申请中的两个日期 第一个日期将是今天的日期 第二个来自数据库 为了保存第二个日期 我的代码如下 为了简单起见 使用明天的日期 Calendar calendar Calendar getInstance calendar add
  • RMarkdown。如何减少标题栏和正文开头之间的间距

    我已经在 Mac 上通过 RStudio 成功使用了 RMarkdown 最近升级到 RStudio 1 2 5019 和tinytex 0 18 现在我的 标题块 和 第一个正文文本 标题 之间的垂直间距增加了 简单的例子 故意排除aut
  • Java:this关键字前面加类名

    我在 jdk 8 的 ArrayList java 中找到了一个片段 SuppressWarnings unchecked public E next checkForComodification int i cursor if i gt
  • 通过VB6读取多个XML文件

    我需要将多个巨大的 xml 数据文件导入到 Excel 中 我不能使用简单的loadXML 函数 因为 Excel 没有足够的可用 RAM 一些 xml 文件约为 100mb 现在我真的尝试了很多 但根本无法实现 XML 文件示例
  • PHP 迭代 $_POST 并按名称使用值

    我有一个表单 其中包含许多名称为 item1 item2 item13 item43 等的字段 每次这些字段都不同 因为它们是使用 AJAX 填充在表单中的 当用户提交时我需要执行以下操作 foreach POST itemX tagsX
  • 从应用程序内发送的短信似乎无法检测到?

    我刚刚创建了一个很酷的应用程序 可以与短信一起使用 我想对我的用户说 别担心 我的应用程序会发送短信 但您可以在您最喜欢的短信应用程序中跟踪它们 我不想让他们担心我会超载他们的月费 所以 我发送短信的方式很简单 SmsManager sms
  • NumPy ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

    我正在 NumPy 中计算矩阵的特征向量和特征值 只是想通过assert陈述 这会引发一个我不太理解的 ValueError 因为打印这些比较效果很好 有什么建议我可以得到这个assert声明有效吗 import numpy as np A