使用 == 比较 numpy 数组的规则是什么?

2023-11-22

例如,尝试理解这些结果:

>>> x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> (x == np.array([[1],[2]])).astype(np.float32)
array([[ 0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]], dtype=float32)
>>> (x == np.array([1,2]))
   False
>>> (x == np.array([[1]])).astype(np.float32)
array([[ 0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]], dtype=float32)
>>> (x == np.array([1])).astype(np.float32)
array([ 0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.], dtype=float32)

>>> (x == np.array([[1,3],[2]]))
False
>>> 

这里发生了什么?在 [1] 的情况下,它将 1 与 x 的每个元素进行比较并将结果聚合到数组中。在 [[1]] 的情况下,同样的事情。只需在 repl 上进行实验,就很容易弄清楚特定数组形状会发生什么。但是双方可以具有任意形状的基本规则是什么?


NumPy 在比较之前尝试将两个数组广播为兼容的形状。 如果广播失败,目前返回False。将来,

相等运算符==将来会引发类似错误 np.equal 如果广播或元素比较等失败。

否则,返回由逐个元素比较产生的布尔数组。例如,自从x and np.array([1])是可广播的,返回形状为 (10,) 的数组:

In [49]: np.broadcast(x, np.array([1])).shape
Out[49]: (10,)

Since x and np.array([[1,3],[2]])不可广播,False由返回x == np.array([[1,3],[2]]).

In [50]: np.broadcast(x, np.array([[1,3],[2]])).shape
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-50-56e4868cd7f7> in <module>()
----> 1 np.broadcast(x, np.array([[1,3],[2]])).shape

ValueError: shape mismatch: objects cannot be broadcast to a single shape
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 == 比较 numpy 数组的规则是什么? 的相关文章

随机推荐

  • 使用 WMI 查询获取挂载点对应的物理磁盘驱动器?

    有没有办法使用 WMI 检索安装点 安装到文件系统而不是安装到驱动器号的卷 与其所属的物理磁盘驱动器之间的连接 例如 我在 W2K8 服务器上有一个卷安装点 该安装点安装到 C Data 并且该安装点分布在服务器的物理磁盘驱动器 2 4 和
  • Windows 中是否存在非提升用户具有写入权限的共享文件夹?

    我知道 commonappdata 所有用户 可以保存系统范围的应用程序设置 但在 Vista 7 下 非提升用户无法写入该目录 是否有一个在用户之间共享且任何非管理员用户都可以写入的文件夹 这就是我需要这个的原因 我的应用程序由具有提升权
  • Tomcat localhost_access_log 文件清理

    我们在 Tomcat 8 上运行 Solr 我们在不同的环境中遇到了 localhost access log 文件填满服务器的问题 这些文件是由 server xml 中的 Access Valve Log 创建的 配置如下
  • MinGW 为 MS DOS 编译

    我正在使用 Code Blocks 和 MinGW 在 Windows XP 中编写我的 C 应用程序 现在我想编译我的代码以在 MS DOS 环境下运行 这样我就可以将它放在我的 DOS 格式的软盘上 谁能帮我 提前致谢 附 我指的不是命
  • Mockito 可运行:想要但未调用?

    在提交错误报告之前 我想确保我没有做任何严重错误的事情 这实在是太奇怪了 设置 机器人电动3 0 模拟 1 10 19 被测单元 public BbScrollView Context context this context null p
  • 以编程方式在 TextView 中设置左侧可绘制对象

    我这里有一个 xml 中的 textView
  • bool 读/写操作在 x86 上可以不是原子的吗? [复制]

    这个问题在这里已经有答案了 假设我们有两个线程 一个正在循环中读取布尔值 另一个可以在特定时间切换它 我个人认为这应该是原子的 因为sizeof bool 在 C 中是 1 个字节 并且您不会部分读取 写入字节 但我想 100 确定 那么是
  • 立即更新解决方案中所有项目的参考路径

    我需要添加解决方案中所有项目 超过 35 个项目 的参考路径 手动执行此操作将非常耗时 有没有办法以编程方式更新 添加 删除所有项目的引用路径 我找到了一个可以满足我需要的插件 但不幸的是加载项下载链接被打破 您始终可以在文本编辑器中打开
  • 如何向Android框架添加系统服务

    我想添加我自己的在 Android system server 中运行的框架代码 处理所有系统级服务 我的服务加载一个 JNI 库 该库与我添加到内核中的驱动程序进行通信 该服务旨在允许应用程序向其注册侦听器以从驱动程序获取更新 我发现了一
  • 从 Scala 的 Future 中获取数据

    I ve a Future List Person 1 我想要得到List Person 从中 我该怎么做 import scala concurrent Future val futPersons Future List Person 有
  • Laravel 5.3 -VerifyCsrfToken.php 第 68 行中的 TokenMismatchException:

    当我登录我的应用程序并在输入后立即返回 然后尝试注销时 我从标题中收到错误消息 我该如何解决该问题 我在 laravel 5 4 中遇到了同样的问题 然后以下命令对我有用 chmod 777 存储 框架 会话 在此之前 它是 chmod 7
  • 使用postman发送json api对象

    我正在使用 JSONAPI 规范http jsonapi org format status 我有如下数据 data type tag id 1 attributes name Test 如何使用 postman chrome 扩展向端点发
  • 有没有办法在安装核心服务(Spark 等)后设置引导操作在 EMR 上运行?

    有没有办法在安装核心服务 Spark 等 后设置引导操作在 EMR 上运行 我正在使用 emr 5 27 0 您可以提交一些脚本作为step 不是引导程序 例如 我制作了一个SSL证书更新脚本 并通过步骤将其应用到EMR中 这是我用 Pyt
  • BadPaddingException 解密 Android 中的加密数据

    我对 Android 安全概念不熟悉 我一直在阅读一些博客 以了解我们可以使用公钥加密数据 并可以使用相应的私钥解密数据 加密似乎没有任何问题 但是当我尝试解密它时 它会抛出 javax crypto BadPaddingException
  • 我的应用程序如何发送带有照片的彩信?

    我想从我的应用程序撰写一条消息 其中可以包含照片 例如 我在 iPhone 中输入了我的相册并打开了一张照片我可以单击选项 然后单击彩信选项卡 照片将添加到消息中然后我可以将其发送给我想要的任何联系人 我想要的是 当我单击应用程序上的按钮时
  • 使用 gtools::mixedsort 或 dplyr::arrange 的替代方案

    我正在尝试通过使用来订购数据框dplyr arrange 问题是我尝试排序的列包含一个固定字符串后跟一个数字 例如由下面的虚拟代码生成的 dummydf lt data frame values rnorm 100 sortcol past
  • 为什么 a[c] 覆盖 a[b]? [复制]

    这个问题在这里已经有答案了 我不明白为什么输出是456 我认为a b 中的b是一个对象的属性 而c是a的另一个属性 它们与 var b 和 c 完全无关 但为什么 a c 会覆盖 a b 呢 var a b key b c key c a
  • 错误:“:”不是有效的资源名称字符

    我已将 Eclipse 项目导入到 android studio 我用 google 搜索但没有得到正确的答案 发生这些错误 D app src main res values strings xml Error Error is not
  • 测量 Android 上的数据漫游流量?

    刚从冰岛度过一个愉快的假期回来 正在等待我的电话公司的数据漫游账单 我希望尽可能限制我的流量 但我想提前知道 我使用了非常好的应用程序网络计数器但它根本没有测量漫游数据流量 所以我想构建自己的应用程序 仅测量漫游数据流量 我有一些布尔值要开
  • 使用 == 比较 numpy 数组的规则是什么?

    例如 尝试理解这些结果 gt gt gt x array 0 1 2 3 4 5 6 7 8 9 gt gt gt x np array 1 2 astype np float32 array 0 1 0 0 0 0 0 0 0 0 0 0