NumPy数组与普通Python列表对比
我正在开发一个程序,用来存储股票数据在一个数组里。这个程序还在进行中。它会从雅虎财经获取数据,并把这些数据存储在一个numpy数组中。如果股票价格达到新高,就会弹出一个提醒。
这里有几个问题:
为什么我需要使用numpy数组来完成这个功能,而不能用普通的列表呢?换句话说,numpy数组有什么好处或者特点?
你能告诉我怎么能更多地了解numpy.loadtxt吗?我试着去看了http://www.numpy.org。
非常感谢,下面是我目前写的程序...
import urllib2
import time
import datetime
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import matplotlib.dates as mdates
def pullData(stock):
try:
print 'Pulling ' + stock
print str(datetime.datetime.fromtimestamp(int(time.time())).strftime('%Y-%m-%d %H:%M:%S'))
urltovisit = 'http://chartapi.finance.yahoo.com/instrument/1.0/'+stock+'/chartdata;type=quote;range=1d/csv'
stockFile = []
try:
f = urllib2.urlopen(urltovisit)
sourceCode = f.read().decode('utf-8')
splitSource = sourceCode.split('\n')
for eachLine in splitSource:
splitLine = eachLine.split(',')
fixMe = splitLine[0]
if len(splitLine) == 6:
if 'values' not in eachLine:
fixed = eachLine.replace(fixMe,str(datetime.datetime.fromtimestamp(int(fixMe)).strftime('%Y-%m-%d %H:%M:%S')))
stockFile.append(fixed)
except Exception, e:
print str(e), 'failed to organize pulled data'
date, closep, highp, lowp, openp, volume = np.loadtxt(stockFile,delimiter=',', unpack=True, converters={ 0: mdates.strpdate2num('%Y-%m-%d %H:%M:%S')})
if highp[-1] == max(highp):
print stock + ' New high ' + str(max(highp))
else:
print ' no new high '
except Exception, e:
print str(e), 'failed to pull pricing data'
stockName = raw_input('Enter a stock: ')
pullData(stockName)