Numpy数组声明错误

时间:2014-01-26 13:35:48

标签: python arrays numpy

我编写了以下代码来从图像中提取特征。一旦从featex函数提取的特征向量需要附加到包含用于训练的所有图像的特征的大特征2D阵列。代码如下:

for dirs, path, files in os.walk("wallet_training/"):
    for filename in files:
            f=os.path.join("wallet_training",filename)
            I=Image.open("wallet_training/1(1).jpeg")
            I=imresize(I,(256,256))
            p=featex(I)
            features=np.vstack([features],[p])

print features.shape

它出现以下错误:

NameError: name 'features' is not defined

有人可以帮助我为什么会出现这个错误,因为据我所知,python中的变量不需要事先定义。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

正如其他用户在评论中所建议的那样,您需要声明features

此外,我建议你使用Python列表附加数据,然后转换为numpy数组:

features = [];
for dirs, path, files in os.walk("wallet_training/"):
    for filename in files:
            f=os.path.join("wallet_training",filename)
            I=Image.open("wallet_training/1(1).jpeg")
            I=imresize(I,(256,256))
            p=featex(I)
            features.append(p) #'features' is a Python list

features = np.array(features)#Now 'features' is an array
print features.shape