Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在使用numpy读取txt文件以生成数字数组时,跳过包含字符串的结束行_Python_Numpy_Scipy - Fatal编程技术网

Python 在使用numpy读取txt文件以生成数字数组时,跳过包含字符串的结束行

Python 在使用numpy读取txt文件以生成数字数组时,跳过包含字符串的结束行,python,numpy,scipy,Python,Numpy,Scipy,我试图生成一个数组,从internet读取文本文件 我的目标是使用Python而不是MATLAB,以取代MATLAB中的这一步骤: url=['http://www.cdc.noaa.gov/Correlation/amon.us.long.data']; urlwrite(url,'file.txt'); 我正在使用以下代码: urllib.urlretrieve('http://www.cdc.noaa.gov/Correlation/amon.us.long.data', '/Users

我试图生成一个数组,从internet读取文本文件

我的目标是使用Python而不是MATLAB,以取代MATLAB中的这一步骤:

url=['http://www.cdc.noaa.gov/Correlation/amon.us.long.data'];
urlwrite(url,'file.txt');
我正在使用以下代码:

urllib.urlretrieve('http://www.cdc.noaa.gov/Correlation/amon.us.long.data', '/Users/epy/file2.txt')
a = np.loadtxt('/Users/epy/file2.txt', skiprows=1, dtype=None)
但是由于文件末尾的文本描述,它失败了


您知道是否存在跳过末尾X行的方法,或者我必须使用某种字符串操作(readlines?)来代替吗?

对于更复杂的文本加载,请查看

它比
numpy.loadtxt
慢,但更灵活

在您的情况下(我避免在此处保存临时文件…):


对于那些曾经来过这里的人来说,这要容易得多(np.loadtxt也可以获得生成器):

而不是

a = np.loadtxt('/Users/epy/file2.txt', skiprows=1, dtype=None)
只要写

a = np.loadtxt(open('/Users/epy/file2.txt','rt').readlines()[:-1]), skiprows=1, dtype=None)

也将跳过最后一行

这比
np.genfromtxt
快吗?
a = np.loadtxt(open('/Users/epy/file2.txt','rt').readlines()[:-1]), skiprows=1, dtype=None)