Python Google Colaboratory上的TypeError
我需要帮助,每次我尝试执行:Python Google Colaboratory上的TypeError,python,google-colaboratory,Python,Google Colaboratory,我需要帮助,每次我尝试执行: pca = PCA(n_components=30) pca.fit(x_train) 在我看来: --------------------------------------------------------------------------- TypeError Traceback (most recent call last) TypeError: only size-1 arrays can be converted to Python scalars
pca = PCA(n_components=30)
pca.fit(x_train)
在我看来:
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) TypeError: only size-1 arrays can be converted to Python scalars
The above exception was the direct cause of the following exception:
ValueError Traceback (most recent call last) in () 1 pca = PCA(n_components=30) ----> 2 pca.fit(x_train)
3 frames /usr/local/lib/python3.7/dist-packages/numpy/core/_asarray.py in asarray(a, dtype, order) 81 82 """ ---> 83 return array(a, dtype, copy=False, order=order) 84 85
ValueError: setting an array element with a sequence.
完整代码:
import cv2 as cv
import numpy as np
import pandas as pd
import os
from sklearn.decomposition import PCA
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")
from google.colab import drive
drive.mount('/content/gdrive')
def carrega_dataframe():
dados = {
"ARQUIVO": [],
"ROTULO": [],
"ALVO": [],
}
caminho_com_mascara = "/content/gdrive/MyDrive/Colab Notebooks/Aula 2021/Imagens/Com mascara"
caminho_sem_mascara = "/content/gdrive/MyDrive/Colab Notebooks/Aula 2021/Imagens/Sem mascara"
com_mascara = os.listdir(caminho_com_mascara)
sem_mascara = os.listdir(caminho_sem_mascara)
for arquivo in com_mascara:
dados["ARQUIVO"].append(f"{caminho_com_mascara}{os.sep}{arquivo}")
dados["ROTULO"].append(f"Com mascara")
dados["ALVO"].append(1)
for arquivo in sem_mascara:
dados["ARQUIVO"].append(f"{caminho_sem_mascara}{os.sep}{arquivo}")
dados["ROTULO"].append(f"Sem mascara")
dados["ALVO"].append(0)
dataframe = pd.DataFrame(dados)
return dataframe
dados = carrega_dataframe()
dados.to_csv("/content/gdrive/MyDrive/Colab Notebooks/Aula 2021/Imagens/Salvar dados/Imagens-df.csv")
dados = pd.read_csv("/content/gdrive/MyDrive/Colab Notebooks/Aula 2021/Imagens/Salvar dados/Imagens-df.csv")
def ler_imagens(dados):
arquivos = dados["ARQUIVO"]
imagens = list()
for arquivo in arquivos:
img = cv.cvtColor(cv.imread(arquivo), cv.COLOR_BGR2GRAY).flatten()
imagens.append(img)
dados["IMAGEM"] = imagens
ler_imagens(dados)
dados.head()
x = list(dados["IMAGEM"])
y = list(dados["ALVO"])
x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=0.90, random_state=13)
pca = PCA(n_components=30)
pca.fit(x_train)