读取 python 中的矩阵文本文件
Read matrix text file in python
我知道这可能是非常基本的,但是当我尝试将我的文件加载到 python.like
时,我不断收到以下错误
ValueError: could not convert string to float
我试过了
input = np.loadtxt("input.txt", dtype='i', delimiter=' ')
open(file.txt,'r')
和read csv
但无法正确阅读,可能只是一些小错误。
文件如下例所示。我不需要顶行,因为它们只是解释限制和数据之间的步长。数字和一些空行之间有多个空格
谢谢
-89.9916666667 89.9916666667 -0.0083333333 360.0083333333 0.0166666667 0.0166666667
15.0900 15.0740 15.0730 15.0730 15.0730 15.0730
15.0730 15.0730 15.0730 15.0730 15.0730 15.0730
15.0730 15.0730 15.0740 15.0740 15.0740 15.0740
15.0740 15.0740 15.0730 15.0730 15.0730 15.0730
15.0730 15.0730 15.0730 15.0720 15.0720 15.0720
15.0720 15.0720 15.0720 15.0720 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0720
15.0720 15.0730 15.0730 15.0740 15.0740 15.0740
15.0740 15.0740 15.0730 15.0730 15.0730 15.0730
15.0730 15.0730 15.0740 15.0740 15.0750 15.0750
15.0760 15.0760 15.0760 15.0760 15.0760 15.0750
15.0750 15.0740 15.0740 15.0740 15.0730 15.0730
15.0730 15.0730 15.0730 15.0730 15.0730 15.0730
15.0740 15.0740 15.0740 15.0750 15.0750 15.0750
15.0760 15.0760 15.0760 15.0760 15.0760 15.0760
15.0760 15.0760 15.0760 15.0760 15.0750 15.0740
15.0740 15.0740 15.0740 15.0730 15.0730 15.0730
15.0730 15.0730 15.0720 15.0720 15.0720 15.0720
15.0720 15.0720 15.0720 15.0720 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0710
15.0710 15.0710 15.0720 15.0720 15.0730 15.0730
15.0730 15.0730 15.0730 15.0740 15.0730 15.0730
15.0730 15.0730 15.0730 15.0730 15.0730 15.0730
15.0730 15.0730 15.0730 15.0730 15.0730 15.0720
15.0720 15.0720 15.0710 15.0710 15.0700 15.0700
15.0700 15.0710 15.0710 15.0710 15.0720 15.0720
15.0720 15.0730 15.0730 15.0730 15.0740 15.0740
15.0740 15.0740 15.0740 15.0740 15.0740 15.0740
15.0740 15.0730 15.0730 15.0730 15.0730 15.0730
15.0730 15.0720 15.0720 15.0720 15.0720 15.0720
15.0720 15.0710 15.0710 15.0710 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0710
您的 input.txt 文件中似乎有两个空行,并且您的值之间的间距不一致。需要删除空行。
为了说明,在第一行你有:
-89.9916666667 89.9916666667 -0.0083333333 360.0083333333 0.0166666667 0.0166666667
第一个值用一个空格分隔,其他值分别为 3、2 和 4。当您在对 np.loadtxt("input.txt", dtype='i', delimiter=' ')
的调用中指定定界符时,您指定的是单个空白字符。只需删除 delimiter 关键字参数即可接受任意数量的空白字符作为分隔符。
此外,您的调用还将输入数据类型指定为整数,dtype='i'
。我不知道这是否是故意的,但这会将所有值四舍五入为最接近的整数。查看您的数据,这可能不是您想要的。
最后,您对 open('input.txt', 'r')
的调用没有任何作用,因为 np.readtxt
会自行处理文件的打开和关闭。
希望这能解决您的问题。
我知道这可能是非常基本的,但是当我尝试将我的文件加载到 python.like
时,我不断收到以下错误ValueError: could not convert string to float
我试过了
input = np.loadtxt("input.txt", dtype='i', delimiter=' ')
open(file.txt,'r')
和read csv
但无法正确阅读,可能只是一些小错误。
文件如下例所示。我不需要顶行,因为它们只是解释限制和数据之间的步长。数字和一些空行之间有多个空格
谢谢
-89.9916666667 89.9916666667 -0.0083333333 360.0083333333 0.0166666667 0.0166666667
15.0900 15.0740 15.0730 15.0730 15.0730 15.0730
15.0730 15.0730 15.0730 15.0730 15.0730 15.0730
15.0730 15.0730 15.0740 15.0740 15.0740 15.0740
15.0740 15.0740 15.0730 15.0730 15.0730 15.0730
15.0730 15.0730 15.0730 15.0720 15.0720 15.0720
15.0720 15.0720 15.0720 15.0720 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0720
15.0720 15.0730 15.0730 15.0740 15.0740 15.0740
15.0740 15.0740 15.0730 15.0730 15.0730 15.0730
15.0730 15.0730 15.0740 15.0740 15.0750 15.0750
15.0760 15.0760 15.0760 15.0760 15.0760 15.0750
15.0750 15.0740 15.0740 15.0740 15.0730 15.0730
15.0730 15.0730 15.0730 15.0730 15.0730 15.0730
15.0740 15.0740 15.0740 15.0750 15.0750 15.0750
15.0760 15.0760 15.0760 15.0760 15.0760 15.0760
15.0760 15.0760 15.0760 15.0760 15.0750 15.0740
15.0740 15.0740 15.0740 15.0730 15.0730 15.0730
15.0730 15.0730 15.0720 15.0720 15.0720 15.0720
15.0720 15.0720 15.0720 15.0720 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0710
15.0710 15.0710 15.0720 15.0720 15.0730 15.0730
15.0730 15.0730 15.0730 15.0740 15.0730 15.0730
15.0730 15.0730 15.0730 15.0730 15.0730 15.0730
15.0730 15.0730 15.0730 15.0730 15.0730 15.0720
15.0720 15.0720 15.0710 15.0710 15.0700 15.0700
15.0700 15.0710 15.0710 15.0710 15.0720 15.0720
15.0720 15.0730 15.0730 15.0730 15.0740 15.0740
15.0740 15.0740 15.0740 15.0740 15.0740 15.0740
15.0740 15.0730 15.0730 15.0730 15.0730 15.0730
15.0730 15.0720 15.0720 15.0720 15.0720 15.0720
15.0720 15.0710 15.0710 15.0710 15.0710 15.0710
15.0710 15.0710 15.0710 15.0710 15.0710 15.0710
您的 input.txt 文件中似乎有两个空行,并且您的值之间的间距不一致。需要删除空行。
为了说明,在第一行你有:
-89.9916666667 89.9916666667 -0.0083333333 360.0083333333 0.0166666667 0.0166666667
第一个值用一个空格分隔,其他值分别为 3、2 和 4。当您在对 np.loadtxt("input.txt", dtype='i', delimiter=' ')
的调用中指定定界符时,您指定的是单个空白字符。只需删除 delimiter 关键字参数即可接受任意数量的空白字符作为分隔符。
此外,您的调用还将输入数据类型指定为整数,dtype='i'
。我不知道这是否是故意的,但这会将所有值四舍五入为最接近的整数。查看您的数据,这可能不是您想要的。
最后,您对 open('input.txt', 'r')
的调用没有任何作用,因为 np.readtxt
会自行处理文件的打开和关闭。
希望这能解决您的问题。