epi*_*nio 7 python numpy scipy
我正在尝试生成一个从互联网上读取文本文件的数组.
我的目标是使用Python而不是MATLAB来替换MATLAB中的这一步:
url=['http://www.cdc.noaa.gov/Correlation/amon.us.long.data'];
urlwrite(url,'file.txt');
Run Code Online (Sandbox Code Playgroud)
我正在使用此代码:
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)
Run Code Online (Sandbox Code Playgroud)
但由于文件末尾的文本描述,它失败了.
你知道在最后是否存在跳过X行的方法,或者我必须使用某种字符串操作(readlines?)?
Joe*_*ton 10
有关更复杂的文本加载,请查看numpy.genfromtxt.
它比较慢numpy.loadtxt但更灵活.
在你的情况下(我在这里避免保存临时文件...):
import numpy as np
import urllib2
url = 'http://www.cdc.noaa.gov/Correlation/amon.us.long.data'
data = np.genfromtxt(urllib2.urlopen(url), skip_header=1, skip_footer=4)
Run Code Online (Sandbox Code Playgroud)