Inspección, Instalación y Carga de Módulos y Paquetes¶
Dependiendo del ambiente de trabajo usado, tenemos diferente cantidad de paquetes instalados.
Hay una forma de ver qué paquetes existen en el ambiente actual sin salir del Notebook.
Basta con colocar !<comando>
en una celda de código.
Dicho esto, ¿Qué es mejor, hacer todo desde el Prompt o el Notebook?
La elección si depende del gusto :)
Ejemplo¶
Verifiquemos que versión de Python estamos usando, qué ambientes disponibles existen, cuál es el activo y qué paquetes están instalados, todo esto sin salir del Notebook.
# Recuerda que # es para usar comentarios
# Versión Actual de Python siendo usada
!python --version
# Función print para dar un salto de línea
print(" ")
# Lista de Ambientes Disponibles y Activo en el Notebook
!conda env list
Python 3.8.8
# conda environments:
#
/Users/nayibeyeseniaariascortez/opt/anaconda3
base * /opt/anaconda3
maria_env /opt/anaconda3/envs/maria_env
prueb_ook /opt/anaconda3/envs/prueb_ook
!conda list
# packages in environment at /opt/anaconda3:
#
# Name Version Build Channel
_anaconda_depends 2020.07 py38_0
_ipyw_jlab_nb_ext_conf 0.1.0 py38_0
abseil-cpp 20200923.3 h046ec9c_0 conda-forge
absl-py 0.13.0 py38hecd8cb5_0
aiohttp 3.8.1 py38h96a0964_0 conda-forge
aiosignal 1.2.0 pyhd8ed1ab_0 conda-forge
alabaster 0.7.12 pyhd3eb1b0_0
anaconda custom py38_1
anaconda-client 1.8.0 py38hecd8cb5_0
anaconda-navigator 2.0.3 py38_0
anaconda-project 0.10.1 pyhd3eb1b0_0
anyio 2.2.0 py38hecd8cb5_1
appdirs 1.4.4 pyhd3eb1b0_0
applaunchservices 0.2.1 pyhd3eb1b0_0
appnope 0.1.2 py38hecd8cb5_1001
appscript 1.1.2 py38h9ed2024_0
argh 0.26.2 py38_0
argon2-cffi 20.1.0 py38h9ed2024_1
argparse 1.4.0 pypi_0 pypi
arrow-cpp 3.0.0 py38h215b936_10_cpu conda-forge
asn1crypto 1.4.0 py_0
astor 0.8.1 pyh9f0ad1d_0 conda-forge
astroid 2.6.6 py38hecd8cb5_0
astropy 4.3.1 py38hf9932de_0
astunparse 1.6.3 pyhd8ed1ab_0 conda-forge
async-timeout 4.0.1 pyhd8ed1ab_0 conda-forge
async_generator 1.10 pyhd3eb1b0_0
atomicwrites 1.4.0 py_0
attrs 21.2.0 pyhd3eb1b0_0
autopep8 1.5.6 pyhd3eb1b0_0
aws-c-cal 0.4.5 h932a87b_9 conda-forge
aws-c-common 0.5.8 h0d85af4_0 conda-forge
aws-c-event-stream 0.2.7 h665fd1f_2 conda-forge
aws-c-io 0.9.4 hbed8cc2_5 conda-forge
aws-checksums 0.1.11 hbed8cc2_4 conda-forge
aws-sdk-cpp 1.8.151 hdd70114_2 conda-forge
babel 2.9.1 pyhd3eb1b0_0
backcall 0.2.0 pyhd3eb1b0_0
backports 1.0 pyhd3eb1b0_2
backports-zoneinfo 0.2.1 pypi_0 pypi
backports.functools_lru_cache 1.6.4 pyhd3eb1b0_0
backports.shutil_get_terminal_size 1.0.0 pyhd3eb1b0_3
backports.tempfile 1.0 pyhd3eb1b0_1
backports.weakref 1.0.post1 py_1
beautifulsoup4 4.10.0 pyh06a4308_0
bitarray 2.3.0 py38h9ed2024_1
bkcharts 0.2 py38_0
black 19.10b0 py_0
blas 1.0 mkl
bleach 4.0.0 pyhd3eb1b0_0
blinker 1.4 py_1 conda-forge
blis 0.4.1 pypi_0 pypi
blosc 1.21.0 h2842e9f_0
bokeh 2.3.3 py38hecd8cb5_0
boto 2.49.0 py38_0
boto3 1.18.21 pyhd3eb1b0_0
botocore 1.21.41 pyhd3eb1b0_1
bottleneck 1.3.2 py38hf1fa96c_1
brotli 1.0.9 hb1e8313_2
brotlipy 0.7.0 py38h9ed2024_1003
bs4 0.0.1 pypi_0 pypi
bzip2 1.0.8 h1de35cc_0
c-ares 1.17.1 h9ed2024_0
ca-certificates 2021.10.8 h033912b_0 conda-forge
cachetools 4.2.4 pyhd8ed1ab_0 conda-forge
catalogue 1.0.0 pypi_0 pypi
certifi 2021.10.8 py38h50d1736_1 conda-forge
cffi 1.14.6 py38h2125817_0
chardet 4.0.0 py38hecd8cb5_1003
charset-normalizer 2.0.4 pyhd3eb1b0_0
click 7.1.2 pyh9f0ad1d_0 conda-forge
click-completion 0.5.2 py38h50d1736_3 conda-forge
click-config-file 0.6.0 pypi_0 pypi
click-default-group 1.2.2 pypi_0 pypi
click-log 0.3.2 pyh9f0ad1d_0 conda-forge
click-plugins 1.1.1 pypi_0 pypi
cloudpickle 2.0.0 pyhd3eb1b0_0
cloup 0.7.1 pypi_0 pypi
clyent 1.2.2 py38_1
colorama 0.4.4 pyhd3eb1b0_0
colour 0.1.5 pypi_0 pypi
commonmark 0.9.1 pypi_0 pypi
conda 4.11.0 py38h50d1736_0 conda-forge
conda-build 3.21.4 py38h50d1736_0 conda-forge
conda-content-trust 0.1.1 pyhd3eb1b0_0
conda-env 2.6.0 1
conda-pack 0.6.0 pyhd3eb1b0_0
conda-package-handling 1.7.3 py38h9ed2024_1
conda-repo-cli 1.0.4 pyhd3eb1b0_0
conda-token 0.3.0 pyhd3eb1b0_0
conda-verify 3.4.2 py_1
configobj 5.0.6 pypi_0 pypi
contextlib2 0.6.0.post1 pyhd3eb1b0_0
cpuonly 1.0 0 pytorch
cryptography 3.4.8 py38h2fd3fbb_0
cssselect 1.1.0 pypi_0 pypi
curl 7.78.0 h7bc2e8c_0
cycler 0.10.0 py38_0
cymem 2.0.6 pypi_0 pypi
cython 0.29.24 py38h23ab428_0
cytoolz 0.11.0 py38haf1e3a3_0
dask 2021.8.1 pyhd3eb1b0_0
dask-core 2021.8.1 pyhd3eb1b0_0
dataclasses 0.6 pypi_0 pypi
datasets 1.13.3 pyhd8ed1ab_0 conda-forge
dateparser 1.1.0 pypi_0 pypi
dbus 1.13.18 h18a8e69_0
debugpy 1.4.1 py38h23ab428_0
decorator 5.1.0 pyhd3eb1b0_0
defusedxml 0.7.1 pyhd3eb1b0_0
demjson3 3.0.5 pypi_0 pypi
diff-match-patch 20200713 pyhd3eb1b0_0
dill 0.3.4 pyhd8ed1ab_0 conda-forge
distributed 2021.8.1 py38hecd8cb5_0
docutils 0.16 py38h50d1736_3 conda-forge
entrypoints 0.3 py38_0
et_xmlfile 1.1.0 py38hecd8cb5_0
expat 2.4.1 h23ab428_2
facebook-scraper 0.2.48 pypi_0 pypi
fake-useragent 0.1.11 pypi_0 pypi
fastcache 1.1.0 py38h1de35cc_0
filelock 3.0.12 pyhd3eb1b0_1
flake8 3.9.0 pyhd3eb1b0_0
flask 2.0.1 pyhd3eb1b0_0
fonttools 4.25.0 pyhd3eb1b0_0
freetype 2.10.4 ha233b18_0
frozenlist 1.2.0 py38h96a0964_1 conda-forge
fsspec 2021.8.1 pyhd3eb1b0_0
ftfy 5.9 pypi_0 pypi
future 0.18.2 py38_1
gast 0.3.3 py_0 conda-forge
get_terminal_size 1.0.0 h7520d66_0
gettext 0.21.0 h7535e17_0
gevent 21.8.0 py38h9ed2024_1
gflags 2.2.2 hb1e8313_1004 conda-forge
ghp-import 2.0.2 pypi_0 pypi
giflib 5.2.1 hbcb3906_2 conda-forge
gitdb 4.0.9 pyhd8ed1ab_0 conda-forge
gitpython 3.1.24 pyhd8ed1ab_0 conda-forge
glcontext 2.3.4 pypi_0 pypi
glib 2.69.1 hdf23fa2_0
glob2 0.7 pyhd3eb1b0_0
glog 0.4.0 hb7f4fc5_3 conda-forge
gmp 6.2.1 h23ab428_2
gmpy2 2.0.8 py38h6ef4df4_3
google-auth 1.21.3 py_0 conda-forge
google-auth-oauthlib 0.4.6 pyhd8ed1ab_0 conda-forge
google-pasta 0.2.0 pyh8c360ce_0 conda-forge
greenlet 1.1.1 py38h23ab428_0
grpc-cpp 1.36.4 h33525da_1 conda-forge
grpcio 1.36.1 py38ha263829_0 conda-forge
h5py 2.10.0 py38h3134771_0
hdf5 1.10.4 hfa1e0ec_0
heapdict 1.0.1 pyhd3eb1b0_0
html5lib 1.1 pyhd3eb1b0_0
huggingface-hub 0.2.1 pypi_0 pypi
huggingface_hub 0.0.17 py_0 huggingface
humanize 3.12.0 pypi_0 pypi
icu 58.2 h0a44026_3
idna 3.2 pyhd3eb1b0_0
imageio 2.9.0 pyhd3eb1b0_0
imagesize 1.2.0 pyhd3eb1b0_0
importlib-metadata 4.8.1 py38hecd8cb5_0
importlib_metadata 4.8.1 hd3eb1b0_0
importlib_resources 3.3.1 pyhd8ed1ab_1 conda-forge
iniconfig 1.1.1 pyhd3eb1b0_0
intel-openmp 2021.3.0 hecd8cb5_3375
intervaltree 3.1.0 pyhd3eb1b0_0
ipykernel 6.4.1 py38hecd8cb5_1
ipython 7.27.0 py38h01d92e1_0
ipython_genutils 0.2.0 pyhd3eb1b0_1
ipywidgets 7.6.5 pyhd8ed1ab_0 conda-forge
isort 5.9.3 pyhd3eb1b0_0
isosurfaces 0.1.0 pypi_0 pypi
itsdangerous 2.0.1 pyhd3eb1b0_0
jax 0.2.21 pyhd8ed1ab_0 conda-forge
jaxlib 0.1.71 py38h25821e9_0 conda-forge
jbig 2.1 h4d881f8_0
jdcal 1.4.1 pyhd3eb1b0_0
jedi 0.17.2 py38hecd8cb5_1
jinja2 3.0.1 pyhd3eb1b0_0
jmespath 0.9.5 py_0 conda-forge/label/cf202003
joblib 1.0.1 pyhd3eb1b0_0
jpeg 9d h9ed2024_0
json2html 1.3.0 pypi_0 pypi
json5 0.9.6 pyhd3eb1b0_0
jsonschema 3.2.0 pyhd3eb1b0_2
jupyter 1.0.0 py38_7
jupyter-book 0.12.1 pyhd8ed1ab_0 conda-forge
jupyter-cache 0.4.3 pyhd8ed1ab_0 conda-forge
jupyter-contrib-core 0.3.3 pypi_0 pypi
jupyter-server-mathjax 0.2.3 pyhd8ed1ab_0 conda-forge
jupyter-sphinx 0.3.2 pyhd8ed1ab_1 conda-forge
jupyter_client 7.0.1 pyhd3eb1b0_0
jupyter_console 6.4.0 pyhd3eb1b0_0
jupyter_contrib_core 0.3.3 py_2 conda-forge
jupyter_contrib_nbextensions 0.5.1 pyhd8ed1ab_2 conda-forge
jupyter_core 4.8.1 py38hecd8cb5_0
jupyter_highlight_selected_word 0.2.0 py38h50d1736_1002 conda-forge
jupyter_latex_envs 1.4.6 pyhd8ed1ab_1002 conda-forge
jupyter_nbextensions_configurator 0.4.1 py38h50d1736_2 conda-forge
jupyter_server 1.4.1 py38hecd8cb5_0
jupyterlab 3.1.7 pyhd3eb1b0_0
jupyterlab-spellchecker 0.7.1 pyhd8ed1ab_0 conda-forge
jupyterlab_pygments 0.1.2 py_0
jupyterlab_server 2.8.2 pyhd3eb1b0_0
jupyterlab_widgets 1.0.0 pyhd3eb1b0_1
jupytext 1.11.5 pyh6002c4b_0 conda-forge
keras 2.6.0 pypi_0 pypi
keras-preprocessing 1.1.2 pyhd8ed1ab_0 conda-forge
keyring 23.1.0 py38hecd8cb5_0
kiwisolver 1.3.1 py38h23ab428_0
krb5 1.19.2 hcd88c3b_0
language-tool-python 2.6.1 pypi_0 pypi
latexcodec 2.0.1 pyh9f0ad1d_0 conda-forge
lazy-object-proxy 1.6.0 py38h9ed2024_0
lcms2 2.12 hf1fd2bf_0
libarchive 3.4.2 haa3ed63_0
libcurl 7.78.0 hb8e4fae_0
libcxx 12.0.0 h2f01273_0
libedit 3.1.20210714 h9ed2024_0
libev 4.33 h9ed2024_1
libevent 2.1.10 h815e4d9_4 conda-forge
libffi 3.3 hb1e8313_2
libgfortran 3.0.1 h93005f0_2
libiconv 1.16 h1de35cc_0
liblief 0.10.1 h0a44026_0
libllvm10 10.0.1 h76017ad_5
libllvm9 9.0.1 h21ff451_1
libnghttp2 1.41.0 h7580e61_2
libpng 1.6.37 ha441bb4_0
libprotobuf 3.15.8 hcf210ce_1 conda-forge
libsodium 1.0.18 h1de35cc_0
libspatialindex 1.9.3 h23ab428_0
libssh2 1.9.0 ha12b0ac_1
libthrift 0.14.1 hab56fdc_2 conda-forge
libtiff 4.2.0 h87d7836_0
libutf8proc 2.6.1 h35c211d_0 conda-forge
libuv 1.40.0 haf1e3a3_0
libwebp-base 1.2.0 h9ed2024_0
libxml2 2.9.12 hcdb78fc_0
libxslt 1.1.34 h83b36ba_0
linkify-it-py 1.0.2 pyhd8ed1ab_0 conda-forge
llvm-openmp 12.0.0 h0dcd299_1
llvmlite 0.36.0 py38he4411ff_4
locket 0.2.1 py38hecd8cb5_1
lxml 4.6.3 py38h26b266a_0
lz4-c 1.9.3 h23ab428_1
lzo 2.10 haf1e3a3_2
manim 0.13.1 pypi_0 pypi
manimgl 1.2.0 dev_0 <develop>
manimpango 0.3.1 pypi_0 pypi
mapbox-earcut 0.12.11 pypi_0 pypi
mariadb-kernel 0.1.1 pypi_0 pypi
markdown 3.3.4 pyhd8ed1ab_0 conda-forge
markdown-it-py 1.1.0 pyhd8ed1ab_0 conda-forge
markupsafe 2.0.1 py38h9ed2024_0
matplotlib 3.4.2 py38hecd8cb5_0
matplotlib-base 3.4.2 py38h8b3ea08_0
matplotlib-inline 0.1.2 pyhd3eb1b0_2
mccabe 0.6.1 py38_1
mdit-py-plugins 0.2.8 pyhd8ed1ab_0 conda-forge
mistune 0.8.4 py38h1de35cc_1001
mkl 2021.3.0 hecd8cb5_517
mkl-service 2.4.0 py38h9ed2024_0
mkl_fft 1.3.0 py38h4a7008c_2
mkl_random 1.2.2 py38hb2f4e1b_0
mock 4.0.3 pyhd3eb1b0_0
moderngl 5.6.4 pypi_0 pypi
moderngl-window 2.4.0 pypi_0 pypi
more-itertools 8.8.0 pyhd3eb1b0_0
mpc 1.1.0 h6ef4df4_1
mpfr 4.0.2 h9066e36_1
mpmath 1.2.1 py38hecd8cb5_0
msgpack-python 1.0.2 py38hf7b0b51_1
multidict 5.2.0 py38h96a0964_1 conda-forge
multipledispatch 0.6.0 py38_0
multiprocess 0.70.12.2 py38h96a0964_1 conda-forge
munkres 1.1.4 py_0
murmurhash 1.0.6 pypi_0 pypi
mypy_extensions 0.4.3 py38_0
mysql-connector 2.2.9 pypi_0 pypi
myst-nb 0.13.1 pyhd8ed1ab_0 conda-forge
myst-parser 0.15.2 pyhd8ed1ab_0 conda-forge
navigator-updater 0.2.1 py38_0
nbclassic 0.2.6 pyhd3eb1b0_0
nbclient 0.5.3 pyhd3eb1b0_0
nbconvert 6.1.0 py38hecd8cb5_0
nbdime 3.1.1 pyhd8ed1ab_0 conda-forge
nbformat 5.1.3 pyhd3eb1b0_0
ncurses 6.2 h0a44026_1
nest-asyncio 1.5.1 pyhd3eb1b0_0
networkx 2.6.3 pyhd3eb1b0_0
ninja 1.10.2 hf7b0b51_1
nltk 3.6.3 pyhd3eb1b0_0
nodejs 0.1.1 pypi_0 pypi
nose 1.3.7 pyhd3eb1b0_1006
notebook 6.4.3 py38hecd8cb5_0
numba 0.53.1 py38hb2f4e1b_0
numexpr 2.7.3 py38h5873af2_1
numpy 1.20.3 py38h4b4dc7a_0
numpy-base 1.20.3 py38he0bd621_0
numpydoc 1.1.0 pyhd3eb1b0_1
oauthlib 3.1.1 pyhd8ed1ab_0 conda-forge
olefile 0.46 pyhd3eb1b0_0
openjpeg 2.4.0 h66ea3da_0
openpyxl 3.0.9 pyhd3eb1b0_0
openssl 1.1.1l h0d85af4_0 conda-forge
opt_einsum 3.3.0 pyhd3eb1b0_1
optional-django 0.1.0 pypi_0 pypi
orc 1.6.7 hb8e0f11_1 conda-forge
packaging 21.0 pyhd3eb1b0_0
pandas 1.3.3 py38h5008ddb_0
pandoc 2.12 hecd8cb5_0
pandocfilters 1.4.3 py38hecd8cb5_1
parquet-cpp 1.5.1 2 conda-forge
parse 1.19.0 pypi_0 pypi
parso 0.7.0 py_0
partd 1.2.0 pyhd3eb1b0_0
path 16.0.0 py38hecd8cb5_0
path.py 12.5.0 hd3eb1b0_0
pathlib2 2.3.6 py38hecd8cb5_2
pathspec 0.7.0 py_0
pathtools 0.1.2 pyhd3eb1b0_1
patsy 0.5.2 py38hecd8cb5_0
pcre 8.45 h23ab428_0
pep8 1.7.1 py38_0
pexpect 4.8.0 pyhd3eb1b0_3
pickleshare 0.7.5 pyhd3eb1b0_1003
pillow 8.3.1 py38ha4cf6ea_0
pip 21.2.4 py38hecd8cb5_0
pkginfo 1.7.1 py38hecd8cb5_0
plac 1.1.3 pypi_0 pypi
plotly 5.3.1 pypi_0 pypi
pluggy 0.13.1 py38hecd8cb5_0
ply 3.11 py38_0
preshed 3.0.6 pypi_0 pypi
prometheus_client 0.11.0 pyhd3eb1b0_0
prompt-toolkit 3.0.20 pyhd3eb1b0_0
prompt_toolkit 3.0.20 hd3eb1b0_0
protobuf 3.15.8 py38ha048514_0 conda-forge
psutil 5.8.0 py38h9ed2024_1
ptyprocess 0.7.0 pyhd3eb1b0_2
py 1.10.0 pyhd3eb1b0_0
py-lief 0.10.1 py38haf313ee_0
pyarrow 3.0.0 py38hf787c1d_10_cpu conda-forge
pyasn1 0.4.8 py_0 conda-forge
pyasn1-modules 0.2.7 py_0 conda-forge
pybtex 0.24.0 pyhd8ed1ab_2 conda-forge
pybtex-docutils 1.0.1 py38h50d1736_1 conda-forge
pycairo 1.20.1 pypi_0 pypi
pycodestyle 2.6.0 pyhd3eb1b0_0
pycosat 0.6.3 py38h1de35cc_1
pycparser 2.20 py_2
pycurl 7.44.1 py38hbcfaee0_1
pydata-sphinx-theme 0.7.2 pyhd8ed1ab_0 conda-forge
pydocstyle 6.1.1 pyhd3eb1b0_0
pydub 0.25.1 pypi_0 pypi
pyee 8.2.2 pypi_0 pypi
pyerfa 2.0.0 py38h9ed2024_0
pyflakes 2.2.0 pyhd3eb1b0_0
pyglet 1.5.21 pypi_0 pypi
pygments 2.10.0 pyhd3eb1b0_0
pyjwt 2.2.0 pyhd8ed1ab_0 conda-forge
pylint 2.9.6 py38hecd8cb5_1
pyls-black 0.4.6 hd3eb1b0_0
pyls-spyder 0.3.2 pyhd3eb1b0_0
pymongo 3.11.0 py38hb1e8313_0 anaconda
pyobjc-core 8.1 pypi_0 pypi
pyobjc-framework-cocoa 8.1 pypi_0 pypi
pyodbc 4.0.31 py38h23ab428_0
pyopengl 3.1.5 pypi_0 pypi
pyopenssl 20.0.1 pyhd3eb1b0_1
pyparsing 2.4.7 pyhd3eb1b0_0
pyppeteer 0.2.6 pypi_0 pypi
pyqt 5.9.2 py38h655552a_2
pyquery 1.4.3 pypi_0 pypi
pyrr 0.10.3 pypi_0 pypi
pyrsistent 0.17.3 py38haf1e3a3_0
pysocks 1.7.1 py38_1
pytables 3.6.1 py38h4727e94_0
pytest 6.2.4 py38hecd8cb5_2
python 3.8.8 h88f2d9e_5
python-dateutil 2.8.2 pyhd3eb1b0_0
python-flatbuffers 1.12 pyhd3eb1b0_0
python-jsonrpc-server 0.4.0 py_0
python-language-server 0.36.2 pyhd3eb1b0_0
python-libarchive-c 2.9 pyhd3eb1b0_1
python-xxhash 2.0.2 py38h96a0964_1 conda-forge
python.app 3 py38h9ed2024_0
python_abi 3.8 2_cp38 conda-forge
pytokenizations 0.8.4 pypi_0 pypi
pytorch 1.7.0 py3.8_0 pytorch
pytz 2021.3 pyhd3eb1b0_0
pytz-deprecation-shim 0.1.0.post0 pypi_0 pypi
pywavelets 1.1.1 py38haf1e3a3_2
pyyaml 5.4.1 py38h9ed2024_1
pyzmq 22.2.1 py38h23ab428_1
qdarkstyle 2.8.1 py_0
qt 5.9.7 h468cd18_1
qtawesome 1.0.2 pyhd3eb1b0_0
qtconsole 5.1.1 pyhd3eb1b0_0
qtpy 1.10.0 pyhd3eb1b0_0
re2 2021.04.01 he49afe7_0 conda-forge
readline 8.1 h9ed2024_0
regex 2021.8.3 py38h9ed2024_0
requests 2.26.0 pyhd3eb1b0_0
requests-html 0.10.0 pypi_0 pypi
requests-oauthlib 1.3.0 pyh9f0ad1d_0 conda-forge
rich 10.15.2 pypi_0 pypi
ripgrep 12.1.1 0
rope 0.19.0 pyhd3eb1b0_0
rsa 4.7.2 pyh44b312d_0 conda-forge
rtree 0.9.7 py38hecd8cb5_1
ruamel_yaml 0.15.100 py38h9ed2024_0
s3transfer 0.5.0 pyhd3eb1b0_0
sacremoses master py_0 huggingface
scikit-image 0.18.1 py38hb2f4e1b_0
scikit-learn 0.24.2 py38hb2f4e1b_0
scipy 1.7.1 py38h88652d9_2
screeninfo 0.6.7 pypi_0 pypi
seaborn 0.11.2 pyhd3eb1b0_0
send2trash 1.8.0 pyhd3eb1b0_1
sentencepiece 0.1.95 py38h12bbefe_1 conda-forge
setuptools 58.0.4 py38hecd8cb5_0
setuptools-scm 6.3.2 pypi_0 pypi
shellingham 1.4.0 pyh44b312d_0 conda-forge
simplegeneric 0.8.1 py38_2
singledispatch 3.7.0 pyhd3eb1b0_1001
sip 4.19.8 py38h0a44026_0
six 1.16.0 pyhd3eb1b0_0
skia-pathops 0.7.2 pypi_0 pypi
smmap 3.0.5 pyh44b312d_0 conda-forge
snappy 1.1.8 hb1e8313_0
sniffio 1.2.0 py38hecd8cb5_1
snowballstemmer 2.1.0 pyhd3eb1b0_0
sortedcollections 2.1.0 pyhd3eb1b0_0
sortedcontainers 2.4.0 pyhd3eb1b0_0
soupsieve 2.2.1 pyhd3eb1b0_0
spacy 2.2.4 pypi_0 pypi
spacy-transformers 0.6.0 pypi_0 pypi
sphinx 4.2.0 pyhd3eb1b0_0
sphinx-book-theme 0.1.7 pyhd8ed1ab_0 conda-forge
sphinx-comments 0.0.3 pyh9f0ad1d_0 conda-forge
sphinx-copybutton 0.4.0 pyhd8ed1ab_0 conda-forge
sphinx-external-toc 0.2.3 pyhd8ed1ab_0 conda-forge
sphinx-inline-tabs 2021.8.17b10 pypi_0 pypi
sphinx-jupyterbook-latex 0.4.6 pyhd8ed1ab_0 conda-forge
sphinx-multitoc-numbering 0.1.3 pyhd8ed1ab_0 conda-forge
sphinx-panels 0.6.0 pyhd8ed1ab_0 conda-forge
sphinx-thebe 0.0.10 pyhd8ed1ab_0 conda-forge
sphinx-togglebutton 0.2.3 pyhd3deb0d_0 conda-forge
sphinxcontrib 1.0 py38_1
sphinxcontrib-applehelp 1.0.2 pyhd3eb1b0_0
sphinxcontrib-bibtex 2.2.1 pyhd8ed1ab_0 conda-forge
sphinxcontrib-devhelp 1.0.2 pyhd3eb1b0_0
sphinxcontrib-htmlhelp 2.0.0 pyhd3eb1b0_0
sphinxcontrib-jsmath 1.0.1 pyhd3eb1b0_0
sphinxcontrib-qthelp 1.0.3 pyhd3eb1b0_0
sphinxcontrib-serializinghtml 1.1.5 pyhd3eb1b0_0
sphinxcontrib-websupport 1.2.4 py_0
spotipy 2.19.0 pypi_0 pypi
spyder 4.2.5 py38hecd8cb5_0
spyder-kernels 1.10.2 py38hecd8cb5_0
sqlalchemy 1.4.22 py38h9ed2024_0
sqlite 3.36.0 hce871da_0
srsly 1.0.5 pypi_0 pypi
srt 3.5.0 pypi_0 pypi
statsmodels 0.12.2 py38h9ed2024_0
sympy 1.8 py38hecd8cb5_0
tbb 2020.3 h879752b_0
tblib 1.7.0 pyhd3eb1b0_0
tenacity 8.0.1 pypi_0 pypi
tensorboard 2.4.1 pyhd8ed1ab_1 conda-forge
tensorboard-plugin-wit 1.8.0 pyh44b312d_0 conda-forge
tensorflow 2.4.0 py38h50d1736_0 conda-forge
tensorflow-base 2.4.0 py38h428766a_0 conda-forge
tensorflow-estimator 2.4.0 pyh9656e83_0 conda-forge
termcolor 1.1.0 py_2 conda-forge
terminado 0.9.4 py38hecd8cb5_0
testpath 0.5.0 pyhd3eb1b0_0
textdistance 4.2.1 pyhd3eb1b0_0
thinc 7.4.0 pypi_0 pypi
threadpoolctl 2.2.0 pyh0d69192_0
three-merge 0.1.1 pyhd3eb1b0_0
tifffile 2020.10.1 py38h0cf3a3e_2
tk 8.6.11 h7bc2e8c_0
tokenizers 0.5.0 pypi_0 pypi
toml 0.10.2 pyhd3eb1b0_0
tomli 1.2.2 pypi_0 pypi
toolz 0.11.1 pyhd3eb1b0_0
torchcontrib 0.0.2 pypi_0 pypi
torchvision 0.8.1 py38_cpu pytorch
tornado 6.1 py38h9ed2024_0
tqdm 4.62.2 pyhd3eb1b0_1
traitlets 5.1.0 pyhd3eb1b0_0
transformers 2.5.0 pypi_0 pypi
twarc 2.8.0 pypi_0 pypi
tweepy 4.1.0 pyhd8ed1ab_0 conda-forge
typed-ast 1.4.3 py38h9ed2024_1
typing-extensions 3.10.0.2 hd3eb1b0_0
typing_extensions 3.10.0.2 pyh06a4308_0
tzdata 2021.4 pypi_0 pypi
tzlocal 4.0.1 pypi_0 pypi
uc-micro-py 1.0.1 pyhd8ed1ab_0 conda-forge
ujson 4.0.2 py38h23ab428_0
unicodecsv 0.14.1 py38_0
unixodbc 2.3.9 haf1e3a3_0
urllib3 1.26.7 pyhd3eb1b0_0
validators 0.18.2 pypi_0 pypi
w3lib 1.22.0 pypi_0 pypi
wasabi 0.9.0 pypi_0 pypi
watchdog 1.0.2 py38h9ed2024_1
wcwidth 0.2.5 pyhd3eb1b0_0
webencodings 0.5.1 py38_1
websockets 9.1 pypi_0 pypi
werkzeug 2.0.1 pyhd3eb1b0_0
wheel 0.37.0 pyhd3eb1b0_1
widgetsnbextension 3.5.1 py38_0
wrapt 1.12.1 py38haf1e3a3_1
wurlitzer 2.1.1 py38hecd8cb5_0
xlrd 2.0.1 pyhd3eb1b0_0
xlsxwriter 3.0.1 pyhd3eb1b0_0
xlwings 0.24.7 py38hecd8cb5_0
xlwt 1.3.0 py38_0
xmltodict 0.12.0 pyhd3eb1b0_0
xxhash 0.8.0 h35c211d_3 conda-forge
xz 5.2.5 h1de35cc_0
yaml 0.2.5 haf1e3a3_0
yapf 0.31.0 pyhd3eb1b0_0
yarl 1.7.2 py38h96a0964_1 conda-forge
zeromq 4.3.4 h23ab428_0
zict 2.0.0 pyhd3eb1b0_0
zipp 3.6.0 pyhd3eb1b0_0
zlib 1.2.11 h1de35cc_3
zope 1.0 py38_1
zope.event 4.5.0 py38_0
zope.interface 5.4.0 py38h9ed2024_0
zstd 1.4.9 h322a384_0
Dentro de cada uno de estos paquetes se encuentran modulos, que juntos forman la librería de módulos disponibles en el ambiente de trabajo.
¿Qué es un módulo?¶
Un módulo es un archivo que tiene extensión .py, es decir, es un archivo de texto que tiene adentro código de python que se puede ejecutar. Un módulo puede definir funciones, clases y variables.
Cabe resaltar lo siguiente: Python es un lenguaje de programación orientado a objetos.
Para términos de visualización, imagínese una caja que tiene muchas cajas por dentro y dentro de cada caja existen herramientas de trabajo distintas.
Ejemplo¶
Mi maleta. Mi maleta tiene dentro lo siguiente:
Una cartuchera.
Un computador.
Un cuaderno.
Los roles serían los siguientes:
Maleta \(\rightarrow\) Paquete
Cartuchera \(\rightarrow\) Módulo
Cuaderno \(\rightarrow\) Módulo
Entonces, si queremos usar la cartuchera, debemos primero abrir la maleta y tomarla.
O sea, del paquete, vamos a usar un módulo.
Dentro de la cartuchera tengo marcadores, lápices, y borrador.
Estos toman el rol de atributos, objetos que hacen tareas específicas.
Por tanto, si quiero usar un borrador, debería hacer lo siguiente
Abrir maleta \(\rightarrow\) Tomar cartuchera \(\rightarrow\) Abrir Cartuchera \(\rightarrow\) Tomar Borrador
En Python, estas acciones se pueden traducir a lo siguiente:
import Maleta
Maleta.Cartuchera.Borrador()
Para saber qué módulos están disponibles en el ambiente de trabajo, basta con usar el siguiente comando:
help("modules")
Please wait a moment while I gather a list of all available modules...
/opt/anaconda3/lib/python3.8/site-packages/IPython/kernel/__init__.py:12: ShimWarning: The `IPython.kernel` package has been deprecated since IPython 4.0.You should import from ipykernel or jupyter_client instead.
warn("The `IPython.kernel` package has been deprecated since IPython 4.0."
WARNING: AstropyDeprecationWarning: The private astropy._erfa module has been made into its own package, pyerfa, which is a dependency of astropy and can be imported directly using "import erfa" [astropy._erfa]
WARNING:root:This caffe2 python run failed to load cuda module:No module named 'caffe2.python.caffe2_pybind11_state_gpu',and AMD hip module:No module named 'caffe2.python.caffe2_pybind11_state_hip'.Will run in CPU only mode.
Parece que es una lista bastante larga…
Veamos alguna documentación de alguno de los módulos y sus atributos.
Por ejemplo random.
#help("random") # Muestra toda la documentación
import random
#?random # Muestra una pequeña documentación
Para acceder a los atributos del módulo, basta colocar dir(modulo)
dir(random)
Vaya que la lista sigue siendo larga…
Sigamos metiendo dentro de cada cosa (algún día llegaremos al fin…no?)
?random.random
¡Bingo! Al fin algo que podemos usar:
x = random.random()
print("Número aleatorio en [0,1]: ",x)
?random.randint
y=random.randint(3,6)
print("Número entero aleatorio entre 3 y 6: ",y)
Alias para módulos¶
Otra propiedad genial de Python es su capacidad para reducir la cantidad de código escrito usando unos secretos milenarios: aliases.
Por ejemplo, si me llamo Daniel, mi alias puede ser Dani.
Entonces, cada vez que me digan Dani, yo miraré en respuesta.
Traducir a Python luce así:
import modulo as alias
Ejemplo¶
import math as m
# Una vez nombrado el alias, siempre se debe referir a ese alias y no al nombre principal
#dir(math) genera error
dir(m)
Aplicación¶
Una pequeña aplicación de Matemáticas:
Área de una circunferencia de radio r:
\(A = \pi r²\)
# Aplicación: Área de un círculo de radio 10 cm
r = 10; # Declarar el radio
z = m.pi*(r**2) # Escribir la fórmula matemática
print("El Área del círculo es: ",z,"cm²")
Como pueden observar, los módulos son el alma de Python.
Tareas¶
Conocer los 10 módulos de Python más usados.
Hacer un ejercicio práctico con cada módulo investigado.
Investigar si es posible crear un módulo de Python. En caso afirmativo, crear uno simple.
Explicar la lógica subyacente de la siguiente línea:
# You Must Reset Kernel 0,0
from math import pi
A = pi*r**2
print(A)
math.pi
Bonus: Fractales¶
Usando un módulo llamado turtle
podemos crear un arbolito bonito.
Importante
Por favor, para poder visualizar la salida del siguiente código abra el cuaderno en Binder
import turtle
def tree(length,n):
if length < (length/n):
return
turtle.forward(length)
turtle.left(45)
tree(length * 0.5,length/n)
turtle.left(20)
tree(length * 0.5,length/n)
turtle.right(75)
tree(length * 0.5,length/n)
turtle.right(20)
tree(length * 0.5,length/n)
turtle.left(30)
turtle.backward(length)
return
turtle.left(90)
turtle.backward(30)
tree(200,4)
---------------------------------------------------------------------------
Terminator Traceback (most recent call last)
<ipython-input-1-8404bb8347a3> in <module>
19 turtle.left(90)
20 turtle.backward(30)
---> 21 tree(200,4)
<ipython-input-1-8404bb8347a3> in tree(length, n)
6 turtle.forward(length)
7 turtle.left(45)
----> 8 tree(length * 0.5,length/n)
9 turtle.left(20)
10 tree(length * 0.5,length/n)
<ipython-input-1-8404bb8347a3> in tree(length, n)
6 turtle.forward(length)
7 turtle.left(45)
----> 8 tree(length * 0.5,length/n)
9 turtle.left(20)
10 tree(length * 0.5,length/n)
<ipython-input-1-8404bb8347a3> in tree(length, n)
8 tree(length * 0.5,length/n)
9 turtle.left(20)
---> 10 tree(length * 0.5,length/n)
11 turtle.right(75)
12 tree(length * 0.5,length/n)
<ipython-input-1-8404bb8347a3> in tree(length, n)
6 turtle.forward(length)
7 turtle.left(45)
----> 8 tree(length * 0.5,length/n)
9 turtle.left(20)
10 tree(length * 0.5,length/n)
<ipython-input-1-8404bb8347a3> in tree(length, n)
9 turtle.left(20)
10 tree(length * 0.5,length/n)
---> 11 turtle.right(75)
12 tree(length * 0.5,length/n)
13 turtle.right(20)
~\anaconda3\lib\turtle.py in right(angle)
Terminator:
Y también formas que tienen forma de pedazos de copitos de nieve (Koch Curve):
from turtle import *
def Recursive_Koch(length, depth):
if depth == 0:
forward(length)
else:
Recursive_Koch(length, depth-1)
right(60)
Recursive_Koch(length, depth-1)
left(120)
#Recursive_Koch(length, depth-1)
Recursive_Koch(length, depth-1)
right(60)
Recursive_Koch(length, depth-1)
# ----------
Recursive_Koch(3, 6)
Autores¶
Alvaro Mauricio Montenegro Díaz, ammontenegrod@unal.edu.co
Daniel Mauricio Montenegro Reyes, dextronomo@gmail.com