我有一个如图所示的形式的文本文件。python - 从包含复数的.txt文件中读取列数据的最佳方法是什么?-LMLPHP

几乎有200个数据点

如何以数组形式有效地读取它们,例如a = array([2,3,...]); d = array([4 + 5j,3 + 1j,....])?

最佳答案

看起来您的文本的格式设置为genfromtxt可以毫无问题地处理它。

暂时忽略列名称等,示例行将为:

In [235]: txt = """-1.99 -1.99 1.07+0.165j"""


dtype指定为适当列的浮点型和复杂型:

In [240]: data = np.genfromtxt([txt,txt],dtype=(float,float,complex))
In [241]: data
Out[241]:
array([(-1.99, -1.99, 1.07+0.165j), (-1.99, -1.99, 1.07+0.165j)],
      dtype=[('f0', '<f8'), ('f1', '<f8'), ('f2', '<c16')])


结果是结构化数组(1d)。通过名称访问字段:

In [242]: data['f0']
Out[242]: array([-1.99, -1.99])
In [243]: data['f2']
Out[243]: array([1.07+0.165j, 1.07+0.165j])


熊猫csv读取器速度更快,但是只有200个数据点,我认为速度不是问题。

关于python - 从包含复数的.txt文件中读取列数据的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52472749/

10-16 21:35