- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
第二次乘法的输出混合了复数的实部和虚部的格式。
我使用的代码:
import numpy as np
tmp1=np.zeros((3,3),dtype='complex64')
tmp2=np.zeros((3,3),dtype='complex64')
M=np.array([[ 2.29e-03 -5.23e-23j, 1.62e-03 +1.37e-23j, 9.14e-06 +4.84e-03j],
[ 1.62e-03 -5.95e-23j, -1.36e-03 +1.92e-23j, -5.29e-06 +2.87e-03j],
[ 9.14e-06 -4.84e-03j, -5.29e-06 -2.87e-03j, 9.63e-01 -3.11e-03j]])
print 'M'
print M
a=np.diag([1.,1.,1j])
print 'a'
print(a)
print 'a^+'
b=np.diag([1,1,-1j])
print(b)
tmp1=np.dot(M,a)
print 'tmp1'
print(tmp1)
tmp2=np.dot(b,tmp1)
print 'C'
print(tmp2)
输出为:
M
[[ 2.29000000e-03 -5.23000000e-23j 1.62000000e-03 +1.37000000e-23j
9.14000000e-06 +4.84000000e-03j]
[ 1.62000000e-03 -5.95000000e-23j -1.36000000e-03 +1.92000000e-23j
-5.29000000e-06 +2.87000000e-03j]
[ 9.14000000e-06 -4.84000000e-03j -5.29000000e-06 -2.87000000e-03j
9.63000000e-01 -3.11000000e-03j]]
a
[[ 1.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 1.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.+1.j]]
a^+
[[ 1.+0.j 0.+0.j 0.+0.j]
[ 0.+0.j 1.+0.j 0.+0.j]
[ 0.+0.j 0.+0.j 0.-1.j]]
tmp1
[[ 2.29000000e-03 -5.23000000e-23j 1.62000000e-03 +1.37000000e-23j
-4.84000000e-03 +9.14000000e-06j]
[ 1.62000000e-03 -5.95000000e-23j -1.36000000e-03 +1.92000000e-23j
-2.87000000e-03 -5.29000000e-06j]
[ 9.14000000e-06 -4.84000000e-03j -5.29000000e-06 -2.87000000e-03j
3.11000000e-03 +9.63000000e-01j]]
C
[[ 0.00229 -5.23000000e-23j 0.00162 +1.37000000e-23j
-0.00484 +9.14000000e-06j]
[ 0.00162 -5.95000000e-23j -0.00136 +1.92000000e-23j
-0.00287 -5.29000000e-06j]
[-0.00484 -9.14000000e-06j -0.00287 +5.29000000e-06j
0.96300 -3.11000000e-03j]]
在 C 中,您可以看到实部以十进制表示形式表示,虚部以科学表示形式表示。知道为什么会发生这种情况吗?这是 Python (2.7.10) 中的错误还是功能?
最佳答案
您正在看到 numpy
打印函数正在运行,试图以一致但紧凑的方式显示数组。
tmp2 的实部以这种方式打印,因为所有值都可以显示(最多 3 位有效数字),而无需借助科学记数法
In [28]: tmp2.real
Out[28]:
array([[ 0.00229, 0.00162, -0.00484],
[ 0.00162, -0.00136, -0.00287],
[-0.00484, -0.00287, 0.963 ]])
制作一份副本,并将一个元素变得更小,然后它会切换为科学记数法:
In [29]: tmp3=tmp2.copy()
In [30]: tmp3[2,0]*= 1e-6
In [31]: tmp3.real
Out[31]:
array([[ 2.29000000e-03, 1.62000000e-03, -4.84000000e-03],
[ 1.62000000e-03, -1.36000000e-03, -2.87000000e-03],
[ -4.84000000e-09, -2.87000000e-03, 9.63000000e-01]])
有关控制打印的参数的更多详细信息,请参阅 np.set_printoptions
的文档。
显然,它正在分别选择实部和虚部的格式。
阻止所有科学记数法:
In [38]: np.set_printoptions(suppress=True)
In [39]: tmp2
Out[39]:
array([[ 0.00229-0.j , 0.00162+0.j , -0.00484+0.00000914j],
[ 0.00162-0.j , -0.00136+0.j , -0.00287-0.00000529j],
[-0.00484-0.00000914j, -0.00287+0.00000529j, 0.96300-0.00311j ]])
这种print
显示很大程度上是为了方便您在代码开发过程中使用。当写入文件时,您可能想要使用像 savetxt
这样的函数。有关设置格式的信息,请参阅其文档。我相信它专门讨论了处理复数。
关于python - 复数的表示法不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34801318/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我有实体: @Entity @Table(name = "CARDS") public class Card { @ManyToOne @JoinColumn(name = "PERSON_I
我正在尝试计算二维多边形的表面法线。我正在使用 OpenGL wiki 中的 Newell 方法来计算表面法线。 https://www.opengl.org/wiki/Calculating_a_S
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 7 年前。 Improve
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我这里有以下 XML: Visa, Mastercard, , , , 0, Discover, American Express siteonly, Buyer Pay
即将发生的 Google 政策变更迫使我们实现一个对话框,以通知欧盟用户有关 Cookie/设备标识符用于广告和分析的情况。我只想向欧盟用户显示此对话框。我不想使用额外的权限(例如 android.p
本文分享自华为云社区《华为大咖说 | 企业应用AI大模型的“道、法、术” ——道:认知篇》,作者:华为云PaaS服务小智。 本期核心观点 上车:AGI是未来5~10年内,每个人都无法回避的技
我有一个与酒精相关的网站,需要先验证年龄,然后才能让他们进入该网站。我使用 HttpModule 来执行此操作,该模块检查 cookie,如果未设置,我会将它们重定向到验证页面。我验证他们的年龄并存储
在欧盟,我们有一项法律,要求网页请求存储 cookie 的许可。我们大多数人都了解 cookie 并同意它们,但仍然被迫在任何地方明确接受它们。所以我计划编写这个附加组件(ff & chrome),它
以下在 C 和/或 C++ 中是否合法? void fn(); inline void fn() { /*Do something here*/ } 让我担心的是,第一个声明看起来暗示函数将被定义
我是一名优秀的程序员,十分优秀!