Python 在使用numpy读取txt文件以生成数字数组时,跳过包含字符串的结束行
我试图生成一个数组,从internet读取文本文件 我的目标是使用Python而不是MATLAB,以取代MATLAB中的这一步骤: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
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)