其他分享
首页 > 其他分享> > 使用numpy.savetxt和numpy.loadtxt编写和读取复数

使用numpy.savetxt和numpy.loadtxt编写和读取复数

作者:互联网

我需要写和读复数.我想使用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()

这给出以下输出:

 (-0.2409216196+-0.0303165074j)  (-0.3409216196+-0.0403165074j)  (-0.4409216196+-0.0503165074j)  (-0.5409216196+-0.0603165074j)

我现在想要做的就是实际读取/加载数据.我的脚本是:

import numpy

d = numpy.loadtxt("test.dat")

这段代码还不够,我目前无法加载数据.我的问题类似于this one.但是,通过用-手动替换-,我仍然无法加载数据.我认为解决方案在于numpy.loadtxt的dtype选项.我还无法弄清楚.

非常感谢您的帮助!

解决方法:

谢谢沃伦·韦克瑟(Warren Weckesser)!您建议的链接对我有很大帮助.我现在有两个工作脚本:一个用于使用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()

读取/加载:

import numpy

coeffs = numpy.loadtxt("test.dat", dtype = numpy.complex128)

标签:complex-numbers,arrays,python,numpy
来源: https://codeday.me/bug/20191029/1961443.html