Muchas computadoras vienen con Python preinstalado. Para saber si su máquina lo tiene, vaya a su terminal (Mac/Linux) o al símbolo del sistema (Windows) y simplemente escriba «python».
Si no ve una pantalla como esta, puede descargar Python manualmente (ventanas/ Impermeable). Alternativamente, se puede instalar Anacondaun popular sistema de paquetes Python para inteligencia artificial y ciencia de datos. Si tienes algún problema de instalación, ¡Pide ayuda a tu asistente de IA favorito!
Con Python ejecutándose, ahora podemos comenzar a escribir código. Recomiendo ejecutar los ejemplos en su computadora a medida que avanza.. También puede descargar el código de muestra completo desde repositorio de GitHub.
Cadenas y números
A tipo de datos (o simplemente “escribir”) es una forma de clasificar datos para que puedan procesarse de manera adecuada y eficiente en una computadora.
Los tipos se definen por un posible conjunto de valores y operaciones. Por ejemplo, cuerdas son secuencias arbitrarias de caracteres (es decir, texto) que se puede manipular de maneras específicas. Pruebe las siguientes cadenas en su instancia de Python de línea de comandos.
"this is a string"
>> 'this is a string'
'so is this:-1*!@&04"(*&^}":>?'
>> 'so is this:-1*!@&04"(*&^}":>?'
"""and
this is
too!!11!"""
>> 'and\n this is\n too!!11!'
"we can even " + "add strings together"
>> 'we can even add strings together'
Aunque las cadenas se pueden sumar (es decir, concatenar), no se pueden agregar tipos de datos numéricos como int (es decir, números enteros) O flotante (es decir, números con decimales)Si intentamos esto en Python, obtendremos un mensaje de error porque las operaciones solo están definidas para tipos compatibles.
# we can't add strings to other data types (BTW this is how you write comments in Python)
"I am " + 29
>> TypeError: can only concatenate str (not "int") to str
# so we have to write 29 as a string
"I am " + "29"
>> 'I am 29'
Listas y diccionarios
Más allá de los tipos básicos de cadenas, enteros y flotantes, Python tiene tipos para estructurar colecciones de datos más grandes.
Un tipo así es un listaA colección ordenada de valores. Podemos tener listas de cadenas, números, cadenas. + números, incluso listas de listas.
# a list of strings
["a", "b", "c"]# a list of ints
[1, 2, 3]
# list with a string, int, and float
["a", 2, 3.14]
# a list of lists
[["a", "b"], [1, 2], [1.0, 2.0]]
Otro tipo de datos maestros es un diccionarioque consiste en secuencias de pares clave-valor O las claves son cadenas Y los valores pueden ser cualquier tipo de datosEsta es una excelente manera de representar datos con múltiples atributos.
# a dictionary
{"Name":"Shaw"}# a dictionary with multiple key-value pairs
{"Name":"Shaw", "Age":29, "Interests":["AI", "Music", "Bread"]}
# a list of dictionaries
[{"Name":"Shaw", "Age":29, "Interests":["AI", "Music", "Bread"]},
{"Name":"Ify", "Age":27, "Interests":["Marketing", "YouTube", "Shopping"]}]
# a nested dictionary
{"User":{"Name":"Shaw", "Age":29, "Interests":["AI", "Music", "Bread"]},
"Last_login":"2024-09-06",
"Membership_Tier":"Free"}
Hasta ahora, hemos visto algunas operaciones y tipos de datos básicos de Python. Sin embargo, todavía nos falta una característica esencial: las variables.
variables proporcionar una representación abstracta de una instancia de tipo de datos subyacente. Por ejemplo, puedo crear una variable llamada nombre_usuario, que representa una cadena que contiene mi nombre, «Shaw». Esto nos permite escribir programas flexibles que no se limitan a valores específicos.
# creating a variable and printing it
user_name = "Shaw"
print(user_name)#>> Shaw
Podemos hacer lo mismo con otros tipos de datos, por ejemplo, números enteros y listas.
# defining more variables and printing them as a formatted string.
user_age = 29
user_interests = ["AI", "Music", "Bread"]print(f"{user_name} is {user_age} years old. His interests include {user_interests}.")
#>> Shaw is 29 years old. His interests include ['AI', 'Music', 'Bread'].
Ahora que nuestros fragmentos de código de ejemplo son cada vez más largos, veamos cómo crear nuestro primer script. Así es como nosotros escribir y ejecutar programas más sofisticados desde la línea de comandos.
Para hacer esto, cree una nueva carpeta en su computadora. lo llamaré mío inicio rápido de Python. Si tienes un favorito IDE (por ejemplo, entorno de desarrollo integrado)Úselo para abrir esta nueva carpeta y crear un nuevo archivo Python, por ejemplo, my-script.py. Allí podemos escribir el programa ceremonial “Hola mundo”.
# ceremonial first program
print("Hello, world!")
Si no tiene un IDE (no recomendado), puede usar un editor de texto básico (por ejemplo, Apple Text Edit, Windows Notepad). En estos casos puedes abra el editor de texto y guarde un nuevo archivo de texto usando la extensión .py en lugar de .txt. Nota: Si está utilizando TextEditor en Mac, es posible que deba poner la aplicación en modo de texto sin formato a través de Formato > Crear texto sin formato.
Luego podemos ejecutar este script usando la Terminal (Mac/Linux) o el Símbolo del sistema (Windows) navegando a la carpeta que contiene nuestro nuevo archivo Python y ejecutando el siguiente comando.
python my-script.py
¡Felicitaciones! Ha ejecutado su primer script de Python. No dudes en desarrolle este programa copiando y pegando los ejemplos de código que aparecen a continuación y volviendo a ejecutar el script para ver sus resultados.
Dos características fundamentales de Python (o cualquier otro lenguaje de programación) son los bucles y los condicionales.
Bucles permítanos ejecutar un fragmento de código particular varias veces. El más popular es el para bucleque ejecuta el mismo código mientras itera sobre una variable.
# a simple for loop iterating over a sequence of numbers
for i in range(5):
print(i) # print ith element# for loop iterating over a list
user_interests = ["AI", "Music", "Bread"]
for interest in user_interests:
print(interest) # print each item in list
# for loop iterating over items in a dictionary
user_dict = {"Name":"Shaw", "Age":29, "Interests":["AI", "Music", "Bread"]}
for key in user_dict.keys():
print(key, "=", user_dict[key]) # print each key and corresponding value
La otra función principal es términoscomo declaraciones if-else, que permítanos programar la lógicaPor ejemplo, es posible que queramos comprobar si el usuario es un adulto o evaluar su sabiduría.
# check if user is 18 or older
if user_dict["Age"] >= 18:
print("User is an adult")# check if user is 1000 or older, if not print they have much to learn
if user_dict["Age"] >= 1000:
print("User is wise")
else:
print("User has much to learn")
es común condiciones de uso en bucles for para aplicar diferentes operaciones en función de condiciones específicas, como contar el número de usuarios interesados en el pan.
# count the number of users interested in bread
user_list = [{"Name":"Shaw", "Age":29, "Interests":["AI", "Music", "Bread"]},
{"Name":"Ify", "Age":27, "Interests":["Marketing", "YouTube", "Shopping"]}]
count = 0 # intialize countfor user in user_list:
if "Bread" in user["Interests"]:
count = count + 1 # update count
print(count, "user(s) interested in Bread")
Funciones son Operaciones que podemos realizar en tipos de datos específicos..
Ya hemos visto una función básica. imprimir()que está definido para cualquier tipo de datos. Sin embargo, hay algunas otras cosas útiles que vale la pena conocer.
# print(), a function we've used several times already
for key in user_dict.keys():
print(key, ":", user_dict[key])# type(), getting the data type of a variable
for key in user_dict.keys():
print(key, ":", type(user_dict[key]))
# len(), getting the length of a variable
for key in user_dict.keys():
print(key, ":", len(user_dict[key]))
# TypeError: object of type 'int' has no len()
Vemos que, a diferencia imprimir() Y tipo(), longitud() no está definido para todos los tipos de datos, por lo que arroja un error cuando se aplica a un int. Hay varios otros funciones específicas de tipo así.
# string methods
# --------------
# make string all lowercase
print(user_dict["Name"].lower())# make string all uppercase
print(user_dict["Name"].upper())
# split string into list based on a specific character sequence
print(user_dict["Name"].split("ha"))
# replace a character sequence with another
print(user_dict["Name"].replace("w", "whin"))
# list methods
# ------------
# add an element to the end of a list
user_dict["Interests"].append("Entrepreneurship")
print(user_dict["Interests"])# remove a specific element from a list
user_dict["Interests"].pop(0)
print(user_dict["Interests"])
# insert an element into a specific place in a list
user_dict["Interests"].insert(1, "AI")
print(user_dict["Interests"])
# dict methods
# ------------
# accessing dict keys
print(user_dict.keys())# accessing dict values
print(user_dict.values())
# accessing dict items
print(user_dict.items())
# removing a key
user_dict.pop("Name")
print(user_dict.items())
# adding a key
user_dict["Name"] = "Shaw"
print(user_dict.items())
Si bien las funciones básicas de Python son útiles, el verdadero poder proviene de crear funciones definidas por el usuario tiene realizar operaciones personalizadas. Además, las funciones personalizadas nos permiten escribir código mucho más limpio. Por ejemplo, aquí se muestran algunos fragmentos de código anteriores reempaquetados como funciones definidas por el usuario.
# define a custom function
def user_description(user_dict):
"""
Function to return a sentence (string) describing input user
"""
return f'{user_dict["Name"]} is {user_dict["Age"]} years old and is interested in {user_dict["Interests"][0]}.'# print user description
description = user_description(user_dict)
print(description)
# print description for a new user!
new_user_dict = {"Name":"Ify", "Age":27, "Interests":["Marketing", "YouTube", "Shopping"]}
print(user_description(new_user_dict))
# define another custom function
def interested_user_count(user_list, topic):
"""
Function to count number of users interested in an arbitrary topic
"""
count = 0for user in user_list:
if topic in user["Interests"]:
count = count + 1
return count
# define user list and topic
user_list = [user_dict, new_user_dict]
topic = "Shopping"
# compute interested user count and print it
count = interested_user_count(user_list, topic)
print(f"{count} user(s) interested in {topic}")
Aunque podemos implementar un programa arbitrario utilizando el núcleo de Python, puede llevar mucho tiempo en algunos casos de uso. Una de las principales ventajas de Python es su una vibrante comunidad de desarrolladores y un sólido ecosistema de paquetes de softwareCasi todo lo que quieras implementar con el núcleo de Python (probablemente) ya existe como una biblioteca de código abierto.
Podemos instalar dichos paquetes usando El administrador de paquetes nativo de Python, pipPara instalar nuevos paquetes, ejecutamos comandos pip desde la línea de comandos. Así podemos instalar engordado, una biblioteca esencial para la ciencia de datos que implementa objetos y operaciones matemáticas básicas.
pip install numpy
Después de instalar numpy, podemos importarlo a un nuevo script de Python y usar algunos de sus tipos de datos y funciones.
import numpy as np# create a "vector"
v = np.array([1, 3, 6])
print(v)
# multiply a "vector"
print(2*v)
# create a matrix
X = np.array([v, 2*v, v/2])
print(X)
# matrix multiplication
print(X*v)
El comando pip anterior agregó numpy a nuestro entorno base de Python. Alternativamente, se recomienda crear el llamado entornos virtuales. Estos son Colecciones de bibliotecas de Python que se pueden intercambiar fácilmente para diferentes proyectos..
Aquí se explica cómo crear un nuevo entorno virtual llamado mi-entorno.
python -m venv my-env
Entonces podremos activarlo.
# mac/linux
source my-env/bin/activate# windows
.\my-env\Scripts\activate.bat
Finalmente, podemos instalar nuevas bibliotecas, como numpy, usando pip.
pip install pip
Nota: Si está utilizando Anaconda, consulte esto ayuda práctica para la memoria para crear un nuevo entorno de conda.
Varias otras bibliotecas se utilizan comúnmente en inteligencia artificial y ciencia de datos. Aquí hay uno Descripción general no exhaustiva de ciertos elementos útiles para la creación de proyectos de IA..
Ahora que hemos conocido los conceptos básicos de Python, veamos cómo podemos usarlo para implementar un proyecto de IA simple. Aquí usaré la API OpenAI para crear una herramienta de resumen de trabajos de investigación y un extractor de palabras clave.
Como todos los demás extractos de esta guía, el código de muestra está disponible en repositorio de GitHub.