An Elementary Introduction to the Wolfram Language
45Conjuntos de datos
Cree un conjunto de datos simple, que contenga 2 filas y 3 columnas:
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
O podría extraerse primero la fila b completa y, de ahí, extraer el elemento z:
In[3]:=
Click for copyable input
Out[3]=
También podría extraerse la fila b completa del conjunto de datos. El resultado es un nuevo conjunto de datos, que en este caso se muestra en forma de columna para facilitar su lectura.
Genere un nuevo conjunto de datos a partir de la fila b del conjunto de datos original:
In[4]:=
Click for copyable input
Out[4]=
Aquí se muestra el conjunto de datos correspondiente a la columna z para todos las filas.
Genere un conjunto de datos que conste de la columna z para todas las filas:
In[5]:=
Click for copyable input
Out[5]=
Obtenga los totales de cada fila aplicando Total a todas las columnas en cada una de las filas:
In[6]:=
Click for copyable input
Out[6]=
Si se usara f en vez de Total, puede verse de inmediato lo que sucede: dicha función se está aplicando a cada una de las asociaciones fila.
Aplique la función f a cada fila:
In[7]:=
Click for copyable input
Out[7]=
Aplique una función que efectúe la suma de los elementos x y z que estén en cada una de las asociaciones:
In[8]:=
Click for copyable input
Out[8]=
In[9]:=
Click for copyable input
Out[9]=
Puede también pensarse en una función que se aplique a todos las filas.
Aquí se extrae el valor de cada columna z y, luego, se aplica f a la asociación de los resultados:
In[10]:=
Click for copyable input
Out[10]=
Se aplica f a los totales de cada una de las columnas:
In[11]:=
Click for copyable input
Out[11]=
In[12]:=
Click for copyable input
Out[12]=
Encuentre los totales para cada fila, y luego elegir el total de la fila b:
In[13]:=
Click for copyable input
Out[13]=
Lo anterior es equivalente a:
In[14]:=
Click for copyable input
Out[14]=
In[15]:=
Click for copyable input
Out[15]=
In[16]:=
Click for copyable input
Out[16]=
La forma de operador de Select es una función que puede aplicarse para ejecutar efectivamente la operación de Select.
Forme un conjunto de datos seleccionando únicamente las filas cuya columna z sea mayor que 5:
In[17]:=
Click for copyable input
Out[17]=
Para cada fila, seleccione las columnas cuyos valores sean mayores que 5, lo que dejará una estructura irregular:
In[18]:=
Click for copyable input
Out[18]=
Normal convierte el conjunto de datos en una asociación común y corriente de asociaciones:
In[19]:=
Click for copyable input
Out[19]=
Muchas de las funciones de Wolfram Language admiten formas de operador.
In[20]:=
Click for copyable input
Out[20]=
SortBy tiene una forma de operador:
In[21]:=
Click for copyable input
Out[21]=
Ordene las filas de acuerdo con el valor de la diferencia entre las columnas x e y:
In[22]:=
Click for copyable input
Out[22]=
Ordene las filas y, luego, encuentre el total de cada columna:
In[23]:=
Click for copyable input
Out[23]=
En ocasiones, se desea aplicar alguna función a cada uno de los elementos del conjunto de datos.
Aplique f a cada uno de los elementos del conjunto de datos:
In[24]:=
Click for copyable input
Out[24]=
Ordene las filas antes de totalizar los cuadrados de sus elementos :
In[25]:=
Click for copyable input
Out[25]=
Un conjunto de datos formado a partir de una lista de asociaciones:
In[26]:=
Click for copyable input
Out[26]=
In[27]:=
Click for copyable input
Out[27]=
In[28]:=
Click for copyable input
Out[28]=
In[29]:=
Click for copyable input
Out[29]=
In[30]:=
Click for copyable input
Out[30]=
Si se piden las lunas de Marte se obtiene un conjunto de datos, al que se pueden hacer consultas ulteriores.
Obtenga un conjunto de datos de las lunas de Marte:
In[31]:=
Click for copyable input
Out[31]=
Se escarba más para hacer una tabla con los radios de las lunas de Marte:
In[32]:=
Click for copyable input
Out[32]=
Haga un conjunto de datos para el número de lunas listadas para cada planeta:
In[33]:=
Click for copyable input
Out[33]=
Obtenga la masa total de todas las lunas de cada planeta:
In[34]:=
Click for copyable input
Out[34]=
Obtenga el mismo resultado, pero solamente para aquellos planetas con más de 10 lunas:
In[35]:=
Click for copyable input
Out[35]=
In[36]:=
Click for copyable input
Out[36]=
Haga un conjunto de datos con las lunas que tengan más del 1% de la masa de la Tierra.
Para cada una de las lunas, seleccione aquellas cuya masa sea mayor que 0.01 veces la masa de la Tierra:
In[37]:=
Click for copyable input
Out[37]=
Obtenga la lista de claves (esto es, los nombres de las lunas) en la asociación que resulta para cada planeta:
In[38]:=
Click for copyable input
Out[38]=
In[39]:=
Click for copyable input
Out[39]=
In[40]:=
Click for copyable input
Out[40]=
Aquí aparece, en una sola fila, el cómputo completo:
In[41]:=
Click for copyable input
Out[41]=
Haga las gráficas de recta numérica para los logaritmos de las masas de las lunas de cada planeta:
In[42]:=
Click for copyable input
Out[42]=
Como otro ejemplo, se hace la nube de palabras con los nombres de las lunas, con los tamaños dependiendo de las masas respectivas. Para este fin, se requiere una sola asociación que asocie el nombre de cada luna con su masa.
Cuando se da una asociación, WordCloud determina los tamaños de acuerdo con los valores en la asociación:
In[43]:=
Click for copyable input
Out[43]=
La función Association combina asociaciones:
In[44]:=
Click for copyable input
Out[44]=
In[45]:=
Click for copyable input
Out[45]=
Se vio anteriormente que es posible escribir algo tipo f[g[x]] como f@g@x o x//g//f. Puede también escribirse f[g[#]]&[x]. Pero, ¿y qué hay con f[g[#]]&? ¿Hay alguna forma abreviada de escribirlo? Sí, la hay, en términos de los operadores de composición de funciones @* y /*.
f@*g@*h representa una composición de funciones que se aplica de derecha-a-izquierda:
In[46]:=
Click for copyable input
Out[46]=
h/*g/*f representa una composición de funciones que se aplican de izquierda-a-derecha:
In[47]:=
Click for copyable input
Out[47]=
Aquí se presenta el código anterior reescrito en términos de la composición @*:
In[48]:=
Click for copyable input
Out[48]=
In[49]:=
Click for copyable input
Out[49]=
Como último ejemplo, se considera otro conjunto de datos, que ahora procede directamente del Wolfram Data Repository. Aquí aparece una página web (sobre meteoros grandes) del repositorio:
Para traer el conjunto de datos principal que se menciona aquí, se usa simplemente ResourceData.
Obtenga el conjunto de datos, simplemente dando su nombre a ResourceData:
In[50]:=
Click for copyable input
Out[50]=
Extraiga el campo de las coordenadas de cada fila, y grafique los resultados:
In[51]:=
Click for copyable input
Out[51]=
Haga un histograma de las altitudes:
In[52]:=
Click for copyable input
Out[52]=
Dataset[data] un conjunto de datos
Normal[dataset] convierte un conjunto de datos en listas y asociaciones normales
Catenate[{assoc1, ...}] concatena asociaciones, combinando sus elementos
f@*g composición de funciones (f[g[x]] al aplicarla a x)
f/*g composición por la derecha (g[f[x]] al aplicarla a x)
Nota: Estos ejercicios usan el conjunto de datos planets=CloudGet["http://wolfr.am/7FxLgPm5"].
45.1Haga una nube de palabras de los planetas, con los pesos determinados por el número de lunas que tienen. »
Muestra de salida esperada:
Out[]=
45.2Haga un diagrama de barras del número de lunas de cada planeta. »
Muestra de salida esperada:
Out[]=
45.3Construya un conjunto de datos con las masas de los planetas, ordenados por el número de sus lunas. »
Muestra de salida esperada:
Out[]=
45.4Forme un conjunto de datos de cada planeta y la masa de su luna más masiva. »
Muestra de salida esperada:
Out[]=
45.5Genere un conjunto de datos con las masas de los planetas, ordenados de acuerdo con la masa de la mayor de sus lunas. »
Muestra de salida esperada:
Out[]=
45.6Forme un conjunto de datos con las medianas de las masas de las lunas de cada planeta. »
Muestra de salida esperada:
Out[]=
Muestra de salida esperada:
Out[]=
45.8Haga una nube de palabras de los países centroamericanos, con los nombres proporcionales a las longitudes de sus respectivos artículos en Wikipedia. »
Muestra de salida esperada:
Out[]=
45.9Encuentre la altitud máxima observada en el conjunto de datos Fireballs & Bolides. »
Salida esperada:
Out[]=
45.10Encuentre el conjunto de datos de las 5 mayores altitudes observadas en el conjunto de datos Fireballs & Bolides. »
Salida esperada:
Out[]=
45.11Haga un histograma con las diferencias entre tiempos sucesivos del brillo pico en el conjunto de datos Fireballs & Bolides. »
Salida esperada:
Out[]=
45.12Grafique las ciudades más próximas para los 10 primeros casos en el conjunto de datos Fireballs & Bolides, con etiquetas para cada ciudad. »
Salida esperada:
Out[]=
45.13Presente gráficamente las ciudades más próximas para los 10 casos con mayores altitudes en el conjunto de datos Fireballs & Bolides, con etiquetas para cada ciudad. »
Salida esperada:
Out[]=
¿Qué tipo de información pueden contener los conjuntos de datos?
Cualquier tipo. No solo números y texto, sino también imágenes, gráficos, y muchas otras cosas. Además, no es necesario que todos los elementos de una fila o columna dada sean del mismo tipo.
¿Qué son las bases de datos y cómo se relacionan con Dataset?
¿Cómo se compara la información en Dataset con la existente en una base de datos SQL relacional?
Las bases de datos SQL se basan estrictamente en tablas de datos acomodados en filas y columnas de tipos determinados, con datos adicionales vinculados medianteclaves externas. Dataset puede tener una mezcla cualquiera de tipos de información, con cualquier número de niveles de anidación y cualquier estructura jerárquica, que tiene un poco más de analogía con una base de datos NoSQL, pero con operaciones adicionales que se posibilitan debido a la naturaleza simbólica del lenguaje.
 
Download Notebook Version
en