{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introducción a NumPy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"_Hasta ahora hemos visto los tipos de datos más básicos que nos ofrece Python: integer, real, complex, boolean, list, tuple... Pero ¿no echas algo de menos? Efectivamente, los __arrays__. _\n",
"\n",
"_En este notebook nos adentraremos en el paquete NumPy: aprenderemos a crear distintos arrays y a operar con ellos_."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ¿Qué es un array? "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Un array es un __bloque de memoria que contiene elementos del mismo tipo__. Básicamente:\n",
"\n",
"* nos _recuerdan_ a los vectores, matrices, tensores...\n",
"* podemos almacenar el array con un nombre y acceder a sus __elementos__ mediante sus __índices__.\n",
"* ayudan a gestionar de manera eficiente la memoria y a acelerar los cálculos.\n",
"\n",
"\n",
"---\n",
"\n",
"| Índice | 0 | 1 | 2 | 3 | ... | n-1 | n |\n",
"| ---------- | :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n",
"| Valor | 2.1 | 3.6 | 7.8 | 1.5 | ... | 5.4 | 6.3 |\n",
"\n",
"---\n",
"\n",
"__¿Qué solemos guardar en arrays?__\n",
"\n",
"* Vectores y matrices.\n",
"* Datos de experimentos:\n",
" - En distintos instantes discretos.\n",
" - En distintos puntos del espacio.\n",
"* Resultado de evaluar funciones con los datos anteriores.\n",
"* Discretizaciones para usar algoritmos de: integración, derivación, interpolación...\n",
"* ... "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## ¿Qué es NumPy?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"NumPy es un paquete fundamental para la programación científica que __proporciona un objeto tipo array__ para almacenar datos de forma eficiente y una serie de __funciones__ para operar y manipular esos datos.\n",
"Para usar NumPy lo primero que debemos hacer es importarlo:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'1.14.0'"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"#para ver la versión que tenemos instalada:\n",
"np.__version__"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Nuestro primer array"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"¿No decíamos que Python era fácil? Pues __creemos nuestros primeros arrays__:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([1, 2, 3, 4])"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Array de una dimensión\n",
"mi_primer_array = np.array([1, 2, 3, 4]) \n",
"mi_primer_array"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[1 2 3 4]\n"
]
}
],
"source": [
"# Podemos usar print\n",
"print(mi_primer_array)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"numpy.ndarray"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Comprobar el tipo de mi_primer_array\n",
"type(mi_primer_array)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dtype('int64')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Comprobar el tipo de datos que contiene\n",
"mi_primer_array.dtype"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Los arrays de una dimensión se crean pasándole una lista como argumento a la función `np.array`. Para crear un array de dos dimensiones le pasaremos una _lista de listas_:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# Array de dos dimensiones\n",
"mi_segundo_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"