Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
clase:iabd:pia:1eval:tema02 [2022/10/28 20:15] admin [El lenguaje Python] |
clase:iabd:pia:1eval:tema02 [2024/01/06 12:03] (actual) admin [Poetry] |
||
---|---|---|---|
Línea 79: | Línea 79: | ||
conda install pydotplus | conda install pydotplus | ||
conda install ipympl | conda install ipympl | ||
+ | conda install opencv --channel conda-forge | ||
+ | conda install pillow --channel anaconda | ||
conda install pandas_profiling --channel conda-forge | conda install pandas_profiling --channel conda-forge | ||
</ | </ | ||
Línea 150: | Línea 151: | ||
</ | </ | ||
- | * Para evitar el final de linea, se usa '' | + | * Para evitar el final de linea, se usa '' |
<sxh python> | <sxh python> | ||
Línea 225: | Línea 226: | ||
<note tip>A veces interesa la información del método '' | <note tip>A veces interesa la información del método '' | ||
+ | |||
+ | * Las propiedades y métodos de una clase | ||
+ | |||
+ | <sxh python> | ||
+ | from sklearn.preprocessing import StandardScaler | ||
+ | standard_scaler = StandardScaler() | ||
+ | dir(standard_scaler) | ||
+ | </ | ||
+ | |||
+ | |||
+ | <sxh base> | ||
+ | [' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ...... | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | </ | ||
==== Operadores ==== | ==== Operadores ==== | ||
Línea 233: | Línea 260: | ||
- | ==== Estructuras de datos ==== | + | ===== Estructuras de datos ===== |
Línea 380: | Línea 407: | ||
from tabulate import tabulate | from tabulate import tabulate | ||
- | a=[ [5, | + | datos=[ [5, |
- | print(tabulate(a, headers=[" | + | print(tabulate(datos, headers=[" |
</ | </ | ||
Línea 395: | Línea 422: | ||
</ | </ | ||
+ | También podemos añadir una primera columna que sean también como " | ||
+ | <sxh python> | ||
+ | from tabulate import tabulate | ||
+ | |||
+ | datos=[ | ||
+ | epocas=[5, | ||
+ | |||
+ | print(tabulate(datos, | ||
+ | |||
+ | </ | ||
+ | <sxh base> | ||
+ | Épocas | ||
+ | -------- | ||
+ | | ||
+ | 10 | ||
+ | 20 | ||
+ | 60 11.396 | ||
+ | </ | ||
- | ==== Estructuras de control ==== | + | ===== Estructuras de control |
* Condicional | * Condicional | ||
Línea 473: | Línea 518: | ||
</ | </ | ||
- | ==== Funciones ==== | + | ===== Funciones |
* Función que retorna un valor | * Función que retorna un valor | ||
Línea 564: | Línea 609: | ||
</ | </ | ||
- | ==== Medición de rendimiento ==== | + | |
+ | ===== Clases ===== | ||
+ | Para crear clases en python: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | |||
+ | * Vamos a crear la clase rectángulo | ||
+ | <sxh python> | ||
+ | class Rectangulo: | ||
+ | def __init__(self, | ||
+ | self.longitud = longitud | ||
+ | self.ancho = ancho | ||
+ | |||
+ | def calcular_area(self): | ||
+ | return self.longitud * self.ancho | ||
+ | |||
+ | def calcular_perimetro(self): | ||
+ | return 2 * (self.longitud + self.ancho) | ||
+ | </ | ||
+ | |||
+ | |||
+ | * Ahora vamos a usar la clase que hemos creado | ||
+ | <sxh python> | ||
+ | mi_rectangulo = Rectangulo(5, | ||
+ | |||
+ | print(" | ||
+ | print(" | ||
+ | print(" | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | <sxh base> | ||
+ | Longitud: 5 | ||
+ | Ancho: 10 | ||
+ | Área: 50 | ||
+ | Perímetro: 30 | ||
+ | </ | ||
+ | ===== Medición de rendimiento | ||
=== timeit === | === timeit === | ||
Línea 609: | Línea 693: | ||
Mas información: | Mas información: | ||
* [[https:// | * [[https:// | ||
+ | |||
+ | ===== Poetry ===== | ||
+ | A veces no quieremos usar conda sino tener una carpeta con todo lo que necesita el proyecto, al estilo de //NodeJS//. En ese caso podemos usar una herramienta llamada [[https:// | ||
+ | |||
+ | * Instalar poetry | ||
+ | <sxh bash> | ||
+ | pip install --user poetry | ||
+ | </ | ||
+ | |||
+ | * Comprobar que tenemos poetry instalado | ||
+ | |||
+ | <sxh bash> | ||
+ | poetry --version | ||
+ | </ | ||
+ | |||
+ | * Para decir que las librerías se instalen en nuestra propia carpeta del proyecto. | ||
+ | <sxh bash> | ||
+ | poetry config virtualenvs.in-project true | ||
+ | </ | ||
+ | |||
+ | * Para tener un proyecto con python y todas sus dependencias en la misma carpeta haremos lo siguiente: | ||
+ | <sxh bash> | ||
+ | poetry init | ||
+ | poetry add libclang = "< | ||
+ | poetry install | ||
+ | </ | ||
+ | |||
+ | <note important> | ||
+ | Si al hacer el '' | ||
+ | '' | ||
+ | deberemos crear la siguiente variable de entorno: | ||
+ | '' | ||
+ | </ | ||
+ | |||
+ | Para ejecutar el código hay 2 formas: | ||
+ | |||
+ | * Desde la línea de comandos: | ||
+ | <sxh python> | ||
+ | poetry run python my_script.py | ||
+ | </ | ||
+ | |||
+ | * Desde VS Code seleccionar en los entornos de ejecución la carpeta '' | ||
+ | {{ : | ||
+ | |||
+ | * Si queremos usar el entorno de poetry pero no está en nuestra carpeta se puede indicar a VS Code cual es el ejecutable de python que debe usar siempre para ello hay que crear en la carpeta de nuestro proyecto el fichero '' | ||
+ | |||
+ | <sxh base> | ||
+ | { | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
===== Ejercicios ===== | ===== Ejercicios ===== | ||
Línea 620: | Línea 757: | ||
* Importa la librería llamada '' | * Importa la librería llamada '' | ||
* Importa la librería llamada '' | * Importa la librería llamada '' | ||
- | * Importa una función '' | + | * Importa una función '' |
Una vez importadas esas librerías ejecuta el siguiente código, el cual mostrará una gráfica. | Una vez importadas esas librerías ejecuta el siguiente código, el cual mostrará una gráfica. | ||
<sxh python> | <sxh python> | ||
- | |||
df=pd.DataFrame({ | df=pd.DataFrame({ | ||
- | 'Nº Habitaciones':load_boston().data[:,5], | + | 'Perímetro medio':load_breast_cancer().data[:,2], |
- | 'Precio':load_boston().target, | + | '¿Benigno?':load_breast_cancer().target, |
}) | }) | ||
+ | |||
figure=plt.figure() | figure=plt.figure() | ||
axes = figure.add_subplot() | axes = figure.add_subplot() | ||
- | sns.scatterplot(data=df, | + | sns.scatterplot(data=df, |
</ | </ | ||
Línea 645: | Línea 781: | ||
- | ==== Ejercicio 4: Ayuda ==== | + | ==== Ejercicio 4.A: Ayuda ==== |
- | * Muestra la ayuda de la función '' | + | * Muestra la ayuda de la función '' |
- | ¿Como se llaman | + | |
+ | ==== Ejercicio 4.B: Ayuda ==== | ||
+ | * Muestra la ayuda de la función '' | ||
+ | |||
+ | ==== Ejercicio 4.C: Ayuda ==== | ||
+ | * Muestra | ||
+ | |||
+ | < | ||
+ | datos=load_breast_cancer() | ||
+ | </ | ||
+ | |||
==== Ejercicio 5: Operadores ==== | ==== Ejercicio 5: Operadores ==== | ||
Línea 676: | Línea 823: | ||
* Imprime todos sus números en una única línea y separados por un espacio | * Imprime todos sus números en una única línea y separados por un espacio | ||
* Imprime todos sus números de forma que se impriman 2 por línea | * Imprime todos sus números de forma que se impriman 2 por línea | ||
- | * Imprime todos sus números de forma que se impriman 3 por línea | + | * Imprime todos sus números de forma que se impriman 3 por línea |
==== Ejercicio 8: Matrices ==== | ==== Ejercicio 8: Matrices ==== | ||
* Crea la siguiente matriz: | * Crea la siguiente matriz: | ||
Línea 736: | Línea 882: | ||
==== Ejercicio 11: Funciones ==== | ==== Ejercicio 11: Funciones ==== | ||
- | * Haz una función llamada " | + | * Haz una función llamada " |
* Modifica la función para que retorne tanto el importe como la cantidad que se ha descontado del precio. Usa la función con los valores de 120€ y un 10% e imprime el resultado. | * Modifica la función para que retorne tanto el importe como la cantidad que se ha descontado del precio. Usa la función con los valores de 120€ y un 10% e imprime el resultado. | ||
* Modifica la función para que por defecto el descuento sea un 10% y no sea necesario pasar ese valor. Usa la función con el valor de 120€ e imprime el resultado. | * Modifica la función para que por defecto el descuento sea un 10% y no sea necesario pasar ese valor. Usa la función con el valor de 120€ e imprime el resultado. | ||
Línea 771: | Línea 917: | ||
</ | </ | ||
+ | Además, encapsula la obtención de los datos en la función '' | ||
+ | <sxh python> | ||
+ | x, | ||
+ | </ | ||
==== Ejercicio 14 ==== | ==== Ejercicio 14 ==== | ||
Línea 846: | Línea 995: | ||
Ejemplo: | Ejemplo: | ||
<sxh python> | <sxh python> | ||
- | redes=[ | + | redes=[ |
</ | </ | ||
Línea 860: | Línea 1009: | ||
16, | 16, | ||
</ | </ | ||
- | |||
- | |||
==== Ejercicio 18 ==== | ==== Ejercicio 18 ==== | ||
+ | Modifica la función '' | ||
+ | |||
+ | ==== Ejercicio 19 ==== | ||
Repite el ejercicio anterior pero ahora con la red neuronal del cáncer de mama y las siguientes capas de la red: | Repite el ejercicio anterior pero ahora con la red neuronal del cáncer de mama y las siguientes capas de la red: | ||
Línea 877: | Línea 1027: | ||
| 64, 128, 64, 8, 1 | 20 | | | 64, 128, 64, 8, 1 | 20 | | ||
| 64, 128, 64, 8, 1 | 40 | | | 64, 128, 64, 8, 1 | 40 | | ||
+ | |||
+ | ==== Ejercicio 20 ==== | ||
+ | Crea una clase llamada '' | ||
+ | |||
+ | La clase debe tener los siguientes atributos: | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * | ||
+ | La clase debe tener los siguientes métodos: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Usa la clase de forma que | ||
+ | * Se cree un objeto | ||
+ | * Se depositen 100€ | ||
+ | * Se retiren 75€. | ||
+ | * Imprimas el titular y el saldo. | ||