我是一个新的python程序员,所以如果这是一个愚蠢的问题,请原谅。 我正在加载一个包含复数的txt文件。这是来自实际大文件txt文件的2x4示例(i用作虚数,而不是j):
0.633399474768199 - 0.0175109522504542i 0.337208501994460 + 0.00414157519417569i 0.462845433000816 + 0.0311199272434047i 0.248496359856117 + 0.000929998413548307i
0.633719938420320 - 0.0168830372084714i 0.364374358580293 + 0.0247026480558120i 0.460808199213633 + 0.0346904985858835i 0.251160695519198 - 0.00257247233248499i
尝试使用以下方式加载文件:
data = np.loadtxt(path, dtype=np.complex_)
显然,只有当我删除所有值的实部和虚部之间的+和-之前和之后的所有空格时,错误才得以解决,我还需要用j替换I
0.633399474768199-0.0175109522504542j 0.337208501994460+0.00414157519417569j
我可以手动执行此操作(不适用于大数据),是否有更简单的加载方法?由于我不确定如何删除+和-,前后的空格,而不影响单独值之间的空格,这不是所有值之间的一致性,因此某些值之间的空格比其他值多,例如三个值之间的空格不同:
0.633830049713846 - 0.0164809219396847i 0.375552117859690 + 0.00970977484227810i 0.473980903316675 + 0.0360707252275126i
不创建新文件的替代解决方案:
最简单的方法可能是用所需的格式编写一个新文件。例如,您可以执行以下操作:
表达式
line.split('i')
在每个i
字符处分割输入字符串。例如,如果该行是split(i)
将生成字符串列表注意列表末尾的空字符串。
[:-2]
是一种拾取除最后一个字符串之外的所有字符串的方法。然后k.replace(' ', '')
删除每对中的所有空格然后
'j '.join(pairs) + 'j\n'
使用string类的join
方法将一个j
(注意空格)固定到除最后一个之外的每个对的末尾。我们在最后一行加上一个j
和一个换行符,然后将其写入一个新文件完成此操作后,您可以按照最初的意图使用
np.loadtxt
相关问题 更多 >
编程相关推荐