Python 2.7 对循环内部的数组求和,并在函数外部调用它
我试图对一个已由循环填充的数组求和,但我只能调用数组中的最后一个值 def nots:Python 2.7 对循环内部的数组求和,并在函数外部调用它,python-2.7,numpy,Python 2.7,Numpy,我试图对一个已由循环填充的数组求和,但我只能调用数组中的最后一个值 def nots: global smhx tilt, lfo = genfromtxt('reso.csv', unpack=True, delimiter=',') for t in xrange(2,5200): mrt=max(tilt[0:t]) x= 1-((lfo[t-1]-lfo[0])/(mrt-lfo[0])) re
global smhx
tilt, lfo = genfromtxt('reso.csv',
unpack=True,
delimiter=',')
for t in xrange(2,5200):
mrt=max(tilt[0:t])
x= 1-((lfo[t-1]-lfo[0])/(mrt-lfo[0]))
results=np.array([x])
smhx=np.sum(results)
print smhx/5200
如果不将数组保存到另一个文件,然后在函数外部调用它,有人能建议正确的方法吗 你的问题不是很清楚,但我正在回答标题中的问题: 要在函数外部调用值,请使用global或将其作为参数传入: 使用全球: 传递:
>>> var = 8
>>> def foo(var):
... var+=1
... return var
...
>>> var
8
>>> for k in range(3):
... var = foo(var)
...
>>> var
11
在您的代码中,一切都很好;您已设置为使用全局。要从另一个函数调用该变量,只需调用:
def foo():
global smhx
#Do whatever you want with smhx
smhx+=500
smhx仅成为一个值。该值是5200条记录数组中的最后一个值,而不是它们的总和。我理解全局变量,但我不明白为什么我只得到数组中的最后一个值,而不是5200条记录的总和。现在当我尝试将其写入CSV时,它是用中文写入的吗?
def foo():
global smhx
#Do whatever you want with smhx
smhx+=500