python 波形符一元运算符作为否定 numpy bool 数组

2024-03-30

应该是一个简单的问题,但我无法在任何地方找到答案。这~python 中的运算符被记录为按位反转运算符。美好的。不过,我注意到看似精神分裂的行为,即:

~True -> -2
~1 -> -2
~False -> -1
~0 -> -1
~numpy.array([True,False],dtype=int) -> array([-2,-1])
~numpy.array([True,False],dtype=bool) -> array([False,True])

在前 4 个示例中,我可以看到 python 正在实现(如文档所示)~x = -(x+1),输入被视为 int即使它是布尔值。因此,对于标量布尔值,~不被视为逻辑否定。并不是说,在使用 int 类型的布尔值定义的 numpy 数组上,行为是相同的。

为什么~然后用作布尔数组上的逻辑否定运算符(另请注意:~numpy.isfinite(numpy.inf) -> True?)?

我必须使用这非常烦人not()在标量上,但是not()无法对数组求反。然后对于数组,我必须使用~, but ~无法否定标量...


not是通过__nonzero__特殊方法,需要返回True or False,因此无法给出所需的结果。相反,~使用运算符,它是通过__not__特殊方法。为了同样的原因,& and |用来代替and and or.

PEP 335 http://www.python.org/dev/peps/pep-0335/旨在允许布尔运算符重载,但由于开销过大而被拒绝(例如,它会使if声明)。PEP 225 http://www.python.org/dev/peps/pep-0225/建议“逐元素”运算符的通用语法,这将提供更通用的解决方案,但已被推迟。看来目前的情况虽然尴尬,但还没有痛苦到足以迫使人们做出改变。

np.isfinite当对标量调用时,返回类型的值np.bool_, not bool. np.bool_也是从 bool 数据类型数组中提取标量值时获得的类型。如果你使用np.True_ and np.False_代替True and False你会得到一致的行为~.

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

python 波形符一元运算符作为否定 numpy bool 数组 的相关文章

随机推荐

  • Nodejs CSV 数据导出系统供用户使用

    我需要允许用户以 csv 格式导出数据 我用nodejs写了应用程序 用户的导出数据可能非常庞大 所以我想知道如何在nodejs中处理这种情况 我应该使用nodejs的process nexttick还是子进程api 还有什么好的模块可用于
  • 当在静态上下文中使用实例方法时,为什么 javac 会发出“错误:类中的方法无法应用于给定类型”?

    考虑以下 无效 Java 程序 public class Test public static void main String args int ints 1 2 3 4 5 print ints public void print in
  • 更新 iOS 分发证书的正确方法

    我的分发证书以及我的所有配置文件将于 6 月 7 日到期 如何正确续订 我现在应该撤销它并申请新的吗 如果我这样做 我所有的实时应用程序都会被删除吗 您的实时应用程序不会被删除 应用商店中的任何内容都不会发生任何变化 一旦它们正式过期 唯一
  • 如何使用递归对数组的偶数和奇数求和

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要帮助创建一个递归函数 该函数接受数字列表 数组并返回元组或类似格式 a b where a是偶数之和并且b是奇数之和 例如 inpu
  • Java Swing:使用相应的键盘按钮时显示按下的按钮

    我正在使用 Swing 用 Ja va 编写一个程序 并使用包含箭头键的 GUI 方向键与键盘上的方向键相对应 当我按下键盘上的向上箭头键时 我希望 GUI 上的向上箭头键显示为被按下 在我释放箭头键之前 它应该显示它仍在被按下 并且当释放
  • 多条路线使用同一个控制器?

    有没有办法编写以下路由 这样您就不必每次都指定相同的控制器 get jobs gt pages jobs get contact gt pages contact get terms gt pages terms get privacy g
  • 如何从 GitHub Actions 中的重定向输出中删除所有无关输出?

    我有一个使用 Terraform 进行部署的 GitHub Actions 工作流程 当 Terraform 完成后 我想获取 Terraform 输出并将其发送到工作流程中的下一个作业 以便可以提取和使用各个部分 具体来说 我的 Terr
  • 如何让 XML 注释出现在不同的项目 (dll) 中?

  • ClusterManager 重新绘制 Google 地图 v2 实用程序的标记

    我正在发出服务器请求 当我收到服务器的响应时 我正在 UI 线程上执行ClusterManager addItem 但这个项目没有在地图上绘制 只有当我进行缩放更新 时 新添加的项目才开始出现 我也尝试调试渲染器 但是onBeforeClu
  • 从 Android 中的 DatePickerDialog 中删除标题

    我想将 DatePickerDialog 限制为明天的最小值 当我输入下面显示的代码时 限制就起作用了 但是 包含日期的标题文本看起来像标题 我怎样才能解决这个问题 这是我的代码 Calendar tempDate Calendar get
  • WASAPI:选择专用输出的波形格式

    我正在尝试使用 WASAPI 打开带有输出设备的独占流 我在选择可接受的格式时遇到了困难 因为似乎没有关于给定设备接受哪些格式的提示 就我而言 IAudioClient GetMixFormat 否则会返回设备的一种默认格式 返回一种不能在
  • 排序错误

    我正在使用 Microsoft SQL Server Management Studio 我有两个数据库 一个是系统数据库 其中包含 master 数据库 另一个是我的数据库 名为CCTNS CAS DE DB 当我尝试通过使用以下工具的工
  • Android 在等待位置时显示进度对话框

    我正在使用以下示例开发基于位置的应用程序 http www androidhive info 2012 07 android gps location manager tutorial http www androidhive info 2
  • C# 中的高质量图形/波形显示组件

    我正在寻找一种使用 C 编写的快速 专业外观且可定制的波形显示组件 我想在时域和频域中主要显示实时音频波形 快 我希望能够缩放 更改轴设置 显示多个通道 自定义感觉和颜色等 有人知道任何事情吗 无论是商业的还是非商业的 谢谢你 Diego
  • 在 Git 中切换分支不会删除目录

    我在 Git 中创建了两个分支 git branch F1 git branch F2 接下来 我切换到 F1 git checkout F1 I rename my UnitTests目录到Tests git mv UnitTests T
  • 使用 LimitedConcurrencyLevelTask​​Scheduler 时延续任务挂起

    我正在研究在 C NET 4 0 中使用 TPL 我创建了一个自定义 API 来简化 Web 请求的创建和下载内容 异步 使用延续任务 那部分工作正常 当我尝试使用时出现的问题LimitedConcurrencyLevelTaskSched
  • 使用 Mocks 测试 Jest 和 Typescript

    我正在使用 Typescript 和 Jest 尝试测试我的 Angular 和 Ionic 应用程序的一些组件 但问题不仅限于 Angular 或 Ionic 因此 我正在尝试让 Jest 的模拟功能发挥作用 我只是创建一个虚拟类 我想尝
  • Visual Studio 2013 - 未安装 Visual Basic/Visual C# Web 模板

    我已在我的计算机上安装了 Visual Studio 2013 Premium MSDN 许可证 然而 ASP NET Web 应用程序模板不存在 除了 Version2012 它为我提供了 MVC 4 请参见下面的屏幕截图 我已经卸载并重
  • Flask Restful:如何使用 fields.Dict() 记录响应主体?

    In flask restplus 我想对具有嵌套列表结构的响应体进行建模 因此每当进行 api 调用时 响应体都会返回我期望的内容 在响应主体中 它有一个嵌套结构 我不知道如何记录它 我要使用吗fields Dict 谁能告诉我如何实现这
  • python 波形符一元运算符作为否定 numpy bool 数组

    应该是一个简单的问题 但我无法在任何地方找到答案 这 python 中的运算符被记录为按位反转运算符 美好的 不过 我注意到看似精神分裂的行为 即 True gt 2 1 gt 2 False gt 1 0 gt 1 numpy array