{"id":7921,"date":"2015-06-04T09:15:21","date_gmt":"2015-06-04T14:15:21","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/ccpg1001\/?p=7921"},"modified":"2026-04-04T11:35:54","modified_gmt":"2026-04-04T16:35:54","slug":"matrices-arreglos-dos-dimensiones","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-u04\/matrices-arreglos-dos-dimensiones\/","title":{"rendered":"4.2 Matrices - Arreglos de dos dimensiones en Python"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#matrices\">Matrices<\/a><\/p>\n\n\n\n<p><a href=\"#matrizarreglo\">Arreglos<\/a><\/p>\n\n\n\n<p><a href=\"#archivo\">Archivo<\/a><\/p>\n\n\n\n<p><a href=\"#guardar\">Guardar<\/a><\/p>\n\n\n\n<p><a href=\"#abrir\">Abrir<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"matrices\">1. Matrices en Programaci\u00f3n<\/h2>\n\n\n\n<figure class=\"wp-block-image alignright size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"505\" height=\"368\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/05\/matrices01.png\" alt=\"un calendario como ejemplo de matrices\" class=\"wp-image-15958\" \/><\/figure>\n\n\n\n<p>Las matrices en programaci\u00f3n se manejan como arreglos de Numpy. <\/p>\n\n\n\n<p>La interpretaci\u00f3n de los datos de una Matriz o arreglo puede ser desde un sistema de ecuaciones, una tabla de goles de un campeonato o una hoja de calendario.<\/p>\n\n\n\n<p>Al igual que los vectores, las matrices en arreglos tienen como componentes: \"nombre\", \"\u00edndice\" y \"tama\u00f1o\". <\/p>\n\n\n\n<figure class=\"wp-block-image alignleft size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"484\" height=\"322\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/06\/matrices02.png\" alt=\"matrices filas, columnas, dimensiones\" class=\"wp-image-16065\" \/><\/figure>\n\n\n\n<p>Los valores de tama\u00f1o dependen de las dimensiones de la matriz. <\/p>\n\n\n\n<p>Para los primeros ejercicios ser\u00e1n rectangulares de nxm.<\/p>\n\n\n\n<p>Los \u00edndices a diferencia de el \u00e1lgebra, inician en cero.<\/p>\n\n\n\n<p>En los ejercicios, la matriz de dos dimensiones usa como \u00edndices de filas la variable \"i\" y para columnas \"j\".<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Matrices como Arreglos de dos dimensiones en Python\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/Mv8jK4MIQF4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#matrices\">Matrices<\/a><\/p>\n\n\n\n<p><a href=\"#matrizarreglo\">Arreglos<\/a><\/p>\n\n\n\n<p><a href=\"#archivo\">Archivo<\/a><\/p>\n\n\n\n<p><a href=\"#guardar\">Guardar<\/a><\/p>\n\n\n\n<p><a href=\"#abrir\">Abrir<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"matrizarreglo\">2. Matrices - Arreglos con Numpy<\/h2>\n\n\n\n<p>Para un mejor manejo de matrices en programaci\u00f3n, se usan las funciones de la librer\u00eda Numpy (Numerical Python) que se incorporan en el bloque de inicio con el alias <code>np<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport numpy as np\n<\/pre><\/div>\n\n\n<p>Definir una matriz de <strong>n<\/strong>x<strong>m<\/strong>, con ceros o llena de unos, requiere la instrucci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; \nimport numpy as np\n&gt;&gt;&gt; n = 5\n&gt;&gt;&gt; m = 7\n&gt;&gt;&gt; matriz0 = np.zeros(shape=(n,m), dtype=float)\n&gt;&gt;&gt; matriz0\narray(&#091;&#091;0., 0., 0., 0., 0., 0., 0.],\n       &#091;0., 0., 0., 0., 0., 0., 0.],\n       &#091;0., 0., 0., 0., 0., 0., 0.],\n       &#091;0., 0., 0., 0., 0., 0., 0.],\n       &#091;0., 0., 0., 0., 0., 0., 0.]])\n&gt;&gt;&gt; matriz1 = np.ones(shape=(n,m), dtype=float)\n&gt;&gt;&gt; matriz1\narray(&#091;&#091;1., 1., 1., 1., 1., 1., 1.],\n       &#091;1., 1., 1., 1., 1., 1., 1.],\n       &#091;1., 1., 1., 1., 1., 1., 1.],\n       &#091;1., 1., 1., 1., 1., 1., 1.],\n       &#091;1., 1., 1., 1., 1., 1., 1.]])\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p>El tipo de matriz (<code>dtype=int<\/code>) se a\u00f1ade para indicar que la matriz tiene datos tipo entero, la forma predeterminada para los datos es tipo real (<code>dtype=float<\/code>)<\/p>\n\n\n\n<p>Las dimensiones de la matriz se obtienen mediante la instrucci\u00f3n con Numpy:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; np.shape(matriz0)\n(5, 7)\n&gt;&gt;&gt; tamano = np.shape(matriz0)\n&gt;&gt;&gt; tamano\n(5, 7)\n&gt;&gt;&gt; tamano&#091;0]\n5\n&gt;&gt;&gt; tamano&#091;1]\n7\n&gt;&gt;&gt; dimension = np.ndim(matriz0)\n&gt;&gt;&gt; dimension\n2\n&gt;&gt;&gt; <\/code><\/pre>\n\n\n\n<p>entre otras operaciones en Numpy que reflejan las operaciones de matrices de \u00e1lgebra.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><strong>Referencias<\/strong>: Inicie con la definici\u00f3n de matrices del \u00e1lgebra lineal:<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.espol.edu.ec\/matg1049\/cl1-02-sistema-de-ecuaciones-lineales\/\">https:\/\/blog.espol.edu.ec\/matg1049\/cl1-02-sistema-de-ecuaciones-lineales\/<\/a><\/p>\n\n\n\n<p>Las operaciones b\u00e1sicas de matrices se describen tambi\u00e9n en \u00e1lgebra lineal:<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.espol.edu.ec\/matg1049\/cl2-07-operaciones-entre-subespacios\/\">https:\/\/blog.espol.edu.ec\/matg1049\/cl2-07-operaciones-entre-subespacios\/<\/a><\/p>\n\n\n\n<p>En el curso de M\u00e9todos Num\u00e9ricos en la unidad 3 de sistemas de ecuaciones se tienen algunos ejemplos de uso de matrices.<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u03\/pivoteo-parcial-filas\/\" data-type=\"post\" data-id=\"1226\">Pivoteo Parcial por filas<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u03\/metodo-gauss\/\" data-type=\"post\" data-id=\"1212\">M\u00e9todo de Gauss<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#matrices\">Matrices<\/a><\/p>\n\n\n\n<p><a href=\"#matrizarreglo\">Arreglos<\/a><\/p>\n\n\n\n<p><a href=\"#archivo\">Archivo<\/a><\/p>\n\n\n\n<p><a href=\"#guardar\">Guardar<\/a><\/p>\n\n\n\n<p><a href=\"#abrir\">Abrir<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"archivo\">3. Matrices - Archivo Abrir\/Guardar<\/h2>\n\n\n\n<p>En Python se pueden obtener los datos de las matrices <strong>desde archivos<\/strong>, o almacenar las matrices <strong>hacia archivos<\/strong>. As\u00ed, cuando las matrices son de grandes dimensiones, no ser\u00e1 necesario tener que escribir los valores de las matrices cada vez que se requiera hacer una operaci\u00f3n.<\/p>\n\n\n\n<p>En librer\u00eda <strong><a href=\"https:\/\/www.numpy.org\/\">Numpy<\/a><\/strong> , existen funciones incorporadas para guardar o abrir una matriz desde un archivo en formato <code>.txt<\/code>con las instrucciones: <code>np.savetxt()<\/code>, <code>np.loadtxt()<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"guardar\">Matriz - Guardar archivo.txt con Numpy<\/h3>\n\n\n\n<p>Para guardar una matriz a un archivo use:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>numpy.savetxt('matriz.txt', matriz)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; import numpy as np\n&gt;&gt;&gt; matriz = np.array(&#091;&#091;1,2,3],&#091;4,5,6]])\n&gt;&gt;&gt; matriz\narray(&#091;&#091;1, 2, 3],\n       &#091;4, 5, 6]])\n&gt;&gt;&gt; np.savetxt('matriz00.txt',matriz)<\/code><\/pre>\n\n\n\n<p>se puede encontrar en <code>archivo.txt<\/code> en el directorio de trabajo de Python<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"570\" height=\"344\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/06\/MatrizGuardar01.png\" alt=\"matriz guardar txt Numpy\" class=\"wp-image-16066\" \/><\/figure>\n\n\n\n<p>El archivo puede ser abierto para observar desde el \"block de notas\"<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"964\" height=\"191\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2015\/06\/MatrizGuardar02.png\" alt=\"matriz guardar txt archivo\" class=\"wp-image-16067\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"abrir\">Matriz - Abrir archivo.txt con Numpy<\/h3>\n\n\n\n<p>Continuando con el ejercicio anterior, para <strong>abrir<\/strong> o leer desde un archivo en formato de texto '<code>matriz.txt<\/code>', se dispone de la instrucci\u00f3n de Numpy:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>np.loadtxt('matriz.txt',dtype=int)<\/code><\/pre>\n\n\n\n<p>La instrucci\u00f3n permite indicar el tipo de datos que se usan en el arreglo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; A = np.loadtxt('matriz00.txt',dtype=int)\n&gt;&gt;&gt; A\narray(&#091;&#091;1, 2, 3],\n       &#091;4, 5, 6]])\n\n&gt;&gt;&gt; B = np.loadtxt('matriz00.txt')\n&gt;&gt;&gt; B\narray(&#091;&#091; 1., 2., 3.],\n       &#091; 4., 5., 6.]])<\/code><\/pre>\n\n\n\n<p><em><strong>Nota<\/strong><\/em>: lo importante es el formato del archivo en tipo texto. Algunas veces los archivos tienen extensi\u00f3n <code>.dat<\/code> que tambi\u00e9n pueden ser le\u00eddos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#matrices\">Matrices<\/a><\/p>\n\n\n\n<p><a href=\"#matrizarreglo\">Arreglos<\/a><\/p>\n\n\n\n<p><a href=\"#archivo\">Archivo<\/a><\/p>\n\n\n\n<p><a href=\"#guardar\">Guardar<\/a><\/p>\n\n\n\n<p><a href=\"#abrir\">Abrir<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"matrices-interpretacion-y-usos\">Matrices - Interpretaci\u00f3n y usos<\/h2>\n\n\n\n<p>Observe el siguiente video y plantee la relaci\u00f3n con el tema de arreglos, matrices, dimensiones y computaci\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Amazing Technology Invented By MIT - Tangible Media\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/lvtfD_rJ2hE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Las aplicaciones de las matrices | Lo que desear\u00eda que mis maestros me hubieran dicho antes. Zach Star. 11 oct 2019.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"The Applications of Matrices | What I wish my teachers told me way earlier\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/rowWM-MijXU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><a href=\"#matrices\">Matrices<\/a><\/p>\n\n\n\n<p><a href=\"#matrizarreglo\">Arreglos<\/a><\/p>\n\n\n\n<p><a href=\"#archivo\">Archivo<\/a><\/p>\n\n\n\n<p><a href=\"#guardar\">Guardar<\/a><\/p>\n\n\n\n<p><a href=\"#abrir\">Abrir<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>Matrices Arreglos Archivo Guardar Abrir 1. Matrices en Programaci\u00f3n Las matrices en programaci\u00f3n se manejan como arreglos de Numpy. La interpretaci\u00f3n de los datos de una Matriz o arreglo puede ser desde un sistema de ecuaciones, una tabla de goles de un campeonato o una hoja de calendario. Al igual que los vectores, las matrices [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-unidades","format":"standard","meta":{"footnotes":""},"categories":[105],"tags":[],"class_list":["post-7921","post","type-post","status-publish","format-standard","hentry","category-fp-u04"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=7921"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7921\/revisions"}],"predecessor-version":[{"id":23008,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7921\/revisions\/23008"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=7921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=7921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=7921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}