The*_*ude 3 python arrays numpy complex-numbers
我需要写和读复数。我想使用numpy.savetxt并numpy.loadtxt这样做。由于我编写的代码相当大,我创建了一个测试文件来尝试写入和读取复数。
到目前为止,我已经能够使用numpy.savetxt. 代码如下:
import numpy
d1 = -0.240921619563 - 0.0303165074169j
d2 = -0.340921619563 - 0.0403165074169j
d3 = -0.440921619563 - 0.0503165074169j
d4 = -0.540921619563 - 0.0603165074169j
array = numpy.array([d1, d2, d3, d4])
save = open("test.dat", "w")
numpy.savetxt(save, array.reshape(1, array.shape[0]), newline = "\r\n", fmt = "%.10f")
save.close()
Run Code Online (Sandbox Code Playgroud)
这给出了以下输出:
(-0.2409216196+-0.0303165074j) (-0.3409216196+-0.0403165074j) (-0.4409216196+-0.0503165074j) (-0.5409216196+-0.0603165074j)
Run Code Online (Sandbox Code Playgroud)
我现在想要做的就是实际读取/加载数据。我的脚本是:
import numpy
d = numpy.loadtxt("test.dat")
Run Code Online (Sandbox Code Playgroud)
这段代码是不够的,我目前无法加载数据。我的问题与此类似。但是,通过手动替换+-a-我仍然无法加载数据。我觉得在这个解决方案是dtype为选项numpy.loadtxt。我一直无法弄清楚。
非常感谢您的帮助!
谢谢沃伦·韦克瑟!你建议的链接对我帮助很大。我现在有两个工作脚本:一个用于编写复数numpy.savetxt,另一个用于使用numpy.loadtxt.
为了将来参考,下面列出了代码。
写作:
import numpy
d1 = -0.240921619563-0.0303165074169j
d2 = -0.340921619563-0.0403165074169j
d3 = -0.440921619563-0.0503165074169j
d4 = -0.540921619563-0.0603165074169j
array = numpy.array([d1, d2, d3, d4])
save = open("test.dat","w")
numpy.savetxt(save, array.reshape(1, array.shape[0]), newline = "\r\n", fmt = '%.4f%+.4fj '*4)
save.close()
Run Code Online (Sandbox Code Playgroud)
读取/加载:
import numpy
coeffs = numpy.loadtxt("test.dat", dtype = numpy.complex128)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6649 次 |
| 最近记录: |