在for循环中汇总数组并在函数外部调用它

时间:2014-04-30 00:34:47

标签: 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]))

        results=np.array([x])

        smhx=np.sum(results)



    print smhx/5200

如果不将数组保存到另一个文件然后在函数外调用它,有人可以建议正确的方法吗?

1 个答案:

答案 0 :(得分:0)

你的问题不是很清楚,但我正在回答标题中提到的问题:

要调用函数之外的值,请使用global,或将其作为参数传递:

使用global

>>> global var
>>> var = 8
>>> def foo():
...     global var
...     var+=1
... 
>>> var
8
>>> foo()
>>> foo()
>>> var
10

传递进来:

>>> var = 8
>>> def foo(var):
...     var+=1
...     return var
...
>>> var
8
>>> for k in range(3):
...     var = foo(var)
...
>>> var
11

在你的代码中,一切都很好;您已设置为使用global。要从另一个函数调用该变量,只需调用:

def foo():
    global smhx
    #Do whatever you want with smhx
    smhx+=500