【发布时间】:2015-09-10 17:51:25
【问题描述】:
我正在尝试读取格式为复数的文件:
data.dat
1.5795219122457646E-11-3.852906516379872E-15i -3.5949335665378405E-12-1.626143709108086E-15i
-6.720365121161621E-15-5.377186331212649E-17i -3.736251476362349E-15-3.0190920417856674E-17i
我使用以下代码读取文件:
import numpy as np
c_complex = np.loadtxt('data.dat', delimiter='\t', dtype=np.complex128)
但它给了我以下错误:
TypeError: complex() argument must be a string or a number, not 'bytes'
我能做些什么来解决这个问题?
非常感谢您的帮助
【问题讨论】:
-
我是否正确假设您使用的是 Python 3?
-
在这种情况下,这可能是
numpy中的一个错误,尽管我无法想象如此基本的东西未经测试。问题是,在 Python 3 中,无法将字节串传递给complex(),因为文本不再由字节串表示。看起来文件似乎是由loadtxt()以二进制模式打开的。 -
是 Python 3.4.3 和 numpy 1.9.2
-
如果我使用 Python 2,错误是:ValueError: complex() arg is a malformed string