TXT的文件是
4.02381782+0.j
-0.73812874-0.20664303j
0.41353142-1.54951921j
-0.33210083+0.61648559j
0.70282186+0.j
-0.33210083-0.61648559j
0.41353142+1.54951921j
-0.73812874+0.20664303j
怎么转换成可以进行计算的数组啊?
转换成能够被np.fft.fft(X)来计算的数组?
转换这个需要什么对应的库么?
你好:
请看如下代码:
txtpath=r"a.txt">>> X=[complex(line) for line in open(r"test.txt")]
Traceback (most recent call last):
File "", line 1, in
ValueError: complex() arg is a malformed string
不对额
>>> X=[complex(line) for line in open(r"test.txt")]
>>> X
[(4.02381782+0j), (-0.73812874-0.20664303j), (0.41353142-1.54951921j), (-0.33210083+0.61648559j), (0.70282186+0j), (-0.33210083-0.61648559j), (0.41353142+1.54951921j), (-0.73812874+0.20664303j)]
我把你给的文本复制,然后用python2.7执行,结果如上。
你的文件是不是还有其它行
是想把每一行的数字 作为一个元素,把他们一起放入数组
就是这样
AAA
BBB
CCC
变成[AAA BBB CCC]。
你的文件肯定包含了额外的空行或者不是复数的行,帮你用正则过滤一下吧
>>>import re
>>> reg=re.compile(r"^\s*[+-]?\d+(\.\d*)?([+-]?\d+(\.\d*)?j)?\s*$")
>>> X=[complex(line.strip()) for line in open(r"test.txt") if reg.search(line)]
>>> X
[(4.02381782+0j), (-0.73812874-0.20664303j), (0.41353142-1.54951921j), (-0.33210083+0.61648559j), (0.70282186+0j), (-0.33210083-0.61648559j), (0.41353142+1.54951921j), (-0.73812874+0.20664303j)]
谢谢啊 你的的确是对的,是我自己的问题。。。一直不知道怎么正则过滤
追答如果我最开始给的答案运行错误,你采纳的那个应该会出现一样的错误吧?