Extrait valeur unique base de données sqlite3

voix
0

J'ai une base de données avec INTERCEPTIONS modèle de régression, les coefficients. Je voudrais extraire les coefficients et les convertir en un tableau numpy.

cursor.execute(SELECT * FROM model_coeffs WHERE desc = 'L1 penalty model')
cursor.fetchall()

La sortie est représentée ci-dessous:

[(3, 'L1 penalty model', 'Intercept', '[0.]'),
 (3,
  'L1 penalty model',
  ['mean radius' 'mean texture' 'mean perimeter' 'mean area'\n 'mean smoothness' 'mean compactness' 'mean concavity'\n 'mean concave points' 'mean symmetry' 'mean fractal dimension'\n 'radius error' 'texture error' 'perimeter error' 'area error'\n 'smoothness error' 'compactness error' 'concavity error'\n 'concave points error' 'symmetry error' 'fractal dimension error'\n 'worst radius' 'worst texture' 'worst perimeter' 'worst area'\n 'worst smoothness' 'worst compactness' 'worst concavity'\n 'worst concave points' 'worst symmetry' 'worst fractal dimension'],
  '[[ 5.80829151e+00  1.47482359e-02 -4.59988460e-01 -9.43196068e-05\n   0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00\n   0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00\n   6.72375188e-01 -5.25653647e-02  0.00000000e+00  0.00000000e+00\n   0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00\n   0.00000000e+00 -2.04390704e-01 -1.03770307e-01 -2.79521678e-02\n   0.00000000e+00  0.00000000e+00 -2.37746363e+00  0.00000000e+00\n   0.00000000e+00  0.00000000e+00]]')]

Dans ce cas, les coefficients sont stockés sous forme de chaîne. Je voudrais extraire à l'aide SQLite et les convertir en un tableau de sorte qu'elles ressemblent par exemple:

[[ 5.80829151e+00  1.47482359e-02 -4.59988460e-01 -9.43196068e-05
   0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00
   0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00
   6.72375188e-01 -5.25653647e-02  0.00000000e+00  0.00000000e+00
   0.00000000e+00  0.00000000e+00  0.00000000e+00  0.00000000e+00
   0.00000000e+00 -2.04390704e-01 -1.03770307e-01 -2.79521678e-02
   0.00000000e+00  0.00000000e+00 -2.37746363e+00  0.00000000e+00
   0.00000000e+00  0.00000000e+00]]

J'ai essayé d' utiliser cursor.fetchone(), mais il ne fonctionne que pour la première ligne (c. -à extraire la valeur de l'ordonnée à l' origine). Ce qui est un moyen de SQL / pythonique pour récupérer les coefficients directement à partir de la deuxième rangée contenant les coefficients?

Créé 27/11/2018 à 15:17
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Si le sql retourne toujours 2 lignes, puis faire fetchone()deux fois, (ce rejet de la première ligne).

Si le sql retourne des jeux mulitple, faire fetchall(), itérer sur les résultats, et jeter (ignorer) les lignes paires

Créé 27/11/2018 à 16:27
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more