当前位置: 首页 > 知识库问答 >
问题:

NumPy是否正确处理复数运算的1:1别名?

漆雕奇逸
2023-03-14

假设ab是不相交的1DNumPy数组,我做numpy.multiply(a, b, b)
b是否保证包含与我通过b[:]=numpy.multiply(a, b)获得的相同值?

实际上,我并没有能够产生不正确的结果,但我不知道我是否只是幸运地使用了我的特定编译或平台,或者我是否真的可以依赖于它,这就是问题所在。

请注意,对于浮点数(即实数),答案显然是肯定的,因为合理的实现不会使其失败,但对于复数,交叉乘法操作很容易通过编写实数部分给出不正确的结果,然后读取虚数部分:

# say the real part is at [0] and the imaginary part is at [1] and c is the product of a & b
c[0] = a[0] * b[0] - a[1] * b[1]
c[1] = a[0] * b[1] + a[1] * b[0]  # if c[0] overlaps a[0] or b[0] then this is wrong

共有1个答案

耿招
2023-03-14

对复杂的值应该被原子化处理。如果它不能像那样工作,那么我们将修复这个bug。

 类似资料:
  • 1. 位运算 整数在计算机中用二进制的位来表示,C语言提供一些运算符可以直接操作整数中的位,称为位运算,这些运算符的操作数都必须是整型的。在以后的学习中你会发现,有些信息利用整数中的某几个位来存储,要访问这些位,仅仅有对整数的操作是不够的,必须借助位运算,例如第 2 节 “Unicode和UTF-8”介绍的UTF-8编码就是如此,学完本节之后你应该能自己写出UTF-8的编码和解码程序。本节首先介绍

  • 本文向大家介绍js为什么不能正确处理小数运算?,包括了js为什么不能正确处理小数运算?的使用技巧和注意事项,需要的朋友参考一下 上面的程序会输出1吗? 在 你有必要知道的 25 个 JavaScript 面试题 一文中,第 8 个题浅显的说了下 js 为什么不能正确处理小数运算的问题。今天重拾旧题,更深层次的剖析下这个问题。 但要先说明的是,不能正确处理小数的运算并不是 JavaScript 语言

  • 我不确定numpy中(N,)和(N,1)之间的区别。假设两者都是一些特征,它们具有相同的N维,并且都有一个样本。有什么区别?

  • 1.【强制】 Java 类库中定义的一类 RuntimeException 可以通过预先检查进行规避,而不应该 通过catch 来处理,比如:IndexOutOfBoundsException,NullPointerException等等。 说明:无法通过预检查的异常除外,如在解析一个外部传来的字符串形式数字时,通过 catch NumberFormatException 来实现。 正例:if (

  • 1.【强制】 异常不要用来做流程控制,条件控制,因为异常的处理效率比条件分支低。 2.【强制】 对大段代码进行 try - catch ,这是不负责任的表现。 catch 时请分清稳定代码和非稳定代码,稳定代码指的是无论如何不会出错的代码。对于非稳定代码的 catch 尽可能进行区分异常类型,再做对应的异常处理。 3.【强制】 捕获异常是为了处理它,不要捕获了却什么都不处理而抛弃之,如果不想处理它

  • 问题内容: 我试图确定用于将数字与相同数字的字符或字符串版本进行比较的标准SQL行为。是否(或类似)总是返回某种“truthy”值(,,等)?我已经在PostgreSQL和MySQL上进行了同样的确认,但是我找不到整个SQL的资源。 更新:问题 的目的是我试图找出在选择/插入/更新/等时使用不带引号的数字是否可以使用。来自其值为数字的非数字字段。 问题答案: 给人因为是一个正确的构造函数中知道我所