Why is python throwing error : AttributeError: 'numpy.ndarray' object has no attribute 'append'?
Why is python throwing error : AttributeError: 'numpy.ndarray' object has no attribute 'append'?
我正在尝试 运行 以下代码,但 python 抛出错误,即 numpy 没有参数 'append' 的行:“ids.append (id)"
path = [os.path.join("data", f) for f in os.listdir("data")]
faces = []
ids = []
for image in path :
img = Image.open(image).convert('L')
nimg = np.array(img, 'uint8')
id = int(os.path.split(image)[1].split(".")[1])
faces.append(nimg)
ids.append(id)
ids = np.array(ids)
clf = cv2.face.EigenFaceRecognizer_create()
clf.train(faces, ids)
clf.write("classifier.yml")
您在第一次迭代后将 ids 转换为数组。当 运行 它时,数组中应该只有一项。我会将行 ids = np.array(ids)
移到 for 循环之外。见下文:
path = [os.path.join("data", f) for f in os.listdir("data")]
faces = []
ids = []
for image in path :
img = Image.open(image).convert('L')
nimg = np.array(img, 'uint8')
id = int(os.path.split(image)[1].split(".")[1])
faces.append(nimg)
ids.append(id)
ids = np.array(ids)
clf = cv2.face.EigenFaceRecognizer_create()
clf.train(faces, ids)
clf.write("classifier.yml")
如果你想让它真正成为一个数组,你将不得不使用以下样式代码,但列表也应该没问题直到最后。
ids = np.array(ids)
ids = np.append(ids, [id])
我正在尝试 运行 以下代码,但 python 抛出错误,即 numpy 没有参数 'append' 的行:“ids.append (id)"
path = [os.path.join("data", f) for f in os.listdir("data")]
faces = []
ids = []
for image in path :
img = Image.open(image).convert('L')
nimg = np.array(img, 'uint8')
id = int(os.path.split(image)[1].split(".")[1])
faces.append(nimg)
ids.append(id)
ids = np.array(ids)
clf = cv2.face.EigenFaceRecognizer_create()
clf.train(faces, ids)
clf.write("classifier.yml")
您在第一次迭代后将 ids 转换为数组。当 运行 它时,数组中应该只有一项。我会将行 ids = np.array(ids)
移到 for 循环之外。见下文:
path = [os.path.join("data", f) for f in os.listdir("data")]
faces = []
ids = []
for image in path :
img = Image.open(image).convert('L')
nimg = np.array(img, 'uint8')
id = int(os.path.split(image)[1].split(".")[1])
faces.append(nimg)
ids.append(id)
ids = np.array(ids)
clf = cv2.face.EigenFaceRecognizer_create()
clf.train(faces, ids)
clf.write("classifier.yml")
如果你想让它真正成为一个数组,你将不得不使用以下样式代码,但列表也应该没问题直到最后。
ids = np.array(ids)
ids = np.append(ids, [id])