我有一个如图所示的形式的文本文件。
几乎有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/