运行函数时的NameError,其中数组的名称是函数的参数

时间:2015-11-23 03:20:59

标签: python arrays numpy nameerror

我正在尝试编写一个导入指定CDF数据文件的函数,将图像格式化为numpy数组并对图像进行一些细微的改进以删除background.This工作正常,但是当我尝试定义时遇到错误数组的名称作为我函数中的一个参数:

from netCDF4 import Dataset
import numpy as np
def importfunction(datafile, imagelabel):
    f = Dataset(datafile)
    locationfloatfield = f.variables['FloatField']
    floatfield = locationfloatfield[:]
    img = floatfield.flatten()
    img = scipy.signal.detrend(img)
    imagelabel = np.reshape(img, (256, 256)) 
    imagelabel += abs(imagelabel.min())
    imagelabel *= (1.0/imagelabel.max())

我尝试将数组标记为在调用函数时指定的imagelabel。但是,当我调用此函数时,我收到此错误:

importfunction('..../CS191mk2153-M-Xp-Topo.nc', label)

NameError: name 'label' is not defined

我不确定如何解决这个问题

1 个答案:

答案 0 :(得分:1)

也许您想要做的是:

def importfunction(datafile):
    f = Dataset(datafile)
    locationfloatfield = f.variables['FloatField']
    floatfield = locationfloatfield[:]
    img = floatfield.flatten()
    img = scipy.signal.detrend(img)
    imagelabel = np.reshape(img, (256, 256)) 
    imagelabel += abs(imagelabel.min())
    imagelabel *= (1.0/imagelabel.max())
    return imagelabel

然后致电:

label = importfunction('..../CS191mk2153-M-Xp-Topo.nc')