<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Luis Alberto Sinisterra Muñoz - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Descubre miles de cursos de programación escritos por expertos. Aprende Desarrollo Web, Ciencia de Datos, DevOps, Seguridad y obtén asesoramiento profesional para desarrolladores. ]]>
        </description>
        <link>https://www.freecodecamp.org/espanol/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Luis Alberto Sinisterra Muñoz - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Fri, 15 May 2026 04:13:41 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/author/luis-alberto-sinisterra-munoz/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Curso intensivo de Python NumPy: Como construir arreglos n-dimensionales para aprendizaje automático ]]>
                </title>
                <description>
                    <![CDATA[ NumPy es una biblioteca de Python para realizar cálculos numéricos a gran escala. Es extremadamente útil, especialmente en aprendizaje automático. Veamos lo que Numpy tiene para ofrecer. Introducción a NumPy NumPy  es una biblioteca de Python utilizada para realizar cálculos numéricos con grandes conjuntos de datos. El nombre significa numérico ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/curso-intensivo-de-python-numpy-como-construir-arreglos-n-dimensionales-para-aprendizaje-automatico/</link>
                <guid isPermaLink="false">60046883a4e0700982a9e531</guid>
                
                    <category>
                        <![CDATA[ Aprendizaje Automatico ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Luis Alberto Sinisterra Muñoz ]]>
                </dc:creator>
                <pubDate>Sat, 10 Apr 2021 04:46:17 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2021/04/numpy-1-1-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>NumPy es una biblioteca de Python para realizar cálculos numéricos a gran escala. Es extremadamente útil, especialmente en aprendizaje automático. Veamos lo que Numpy tiene para ofrecer.</p><h1 id="introducci-n-a-numpy"><strong>Introducción a<strong> N</strong>u<strong>mPy</strong></strong></h1><p>NumPy &nbsp;es una biblioteca de Python utilizada para realizar cálculos numéricos con grandes conjuntos de datos. El nombre significa numérico y es una biblioteca popular utilizada por los científicos de datos, especialmente para problemas de aprendizaje automático.</p><p>NumPy &nbsp;es útil al preprocesar los datos antes de entrenarlos utilizando un algoritmo de aprendizaje automático.</p><p>Trabajar con arreglos n-dimensionales es más fácil en Numpy en comparacion con las listas de Python. Los arreglos Numpy son también más rápidos que las listas de Python, ya que, a diferencia de, los arreglos de Numpy se almacenan en un lugar continuo en la memoria. Esto permite que el procesador realice cálculos de manera eficiente</p><p>En este artículo, Veremos los conceptos básicos para trabajar con NumPy incluyendo operaciones con arreglos, transformación de matrices, generación de valores aleatorios, etcétera.</p><h1 id="instalaci-n">Instalación</h1><p>Se proporcionan instrucciones claras de instalación en el sitio web oficial de Numpy, Así que &nbsp;no las repetiré en este artículo. <a href="https://numpy.org/install/" rel="noopener nofollow"> Encuentra las instrucciones aquí</a>.</p><h1 id="trabajando-con-numpy"><strong>Trabajando con Numpy</strong></h1><h2 id="importando-numpy"><strong><strong>Import</strong>ando<strong> NumPy</strong></strong></h2><p>Para comenzar a usar Numpy en su script, tienes que importarlo.</p><pre><code>import numpy as np</code></pre><h2 id="convirtiendo-arreglos-en-arreglos-numpy"><strong><strong>Conv</strong>irtiendo<strong> </strong>a<strong>rr</strong>eglos<strong> </strong>en<strong> </strong>arreglos <strong>NumPy </strong></strong></h2><p>Puedes convertir tus listas de Python existentes en arreglos Numpy usando el método &nbsp;np.array(), así:</p><pre><code>arreglo = [1,2,3]
np.array(arreglo)</code></pre><p>Esto también aplica para arreglos multi-dimensionales. NumPy realizará un seguimiento de la forma (dimensiones) del arreglo .</p><pre><code>arreglo_anidado = [[1,2],[3,4],[5,6]]
np.array(arreglo_anidado)</code></pre><h2 id="funci-n-numpy-arrange"><strong>Función <strong>NumPy </strong>a<strong>rrange </strong></strong></h2><p>Al trabajar con datos, a menudo te encontrarás con casos de uso donde necesites generar datos.</p><p>NumPy tiene un método &nbsp;“arrange()” con el que puedes generar un rango de valores entre 2 números. La función arrange toma el inicio, el final y un parámetro de distancia opcional.</p><pre><code>print(np.arrange(0,10)) # Sin parametro de distancia
OUTPUT:[0 1 2 3 4 5 6 7 8 9]

print(np.arrange(0,10,2)) # con parametro de distancia
OUTPUT: [0 2 4 6 8]</code></pre><h2 id="ceros-y-unos"><strong>Ceros y unos </strong></h2><p>Tú también puedes generar un arreglo o matriz de ceros y unos usando Numpy (créeme, lo necesitarás). Así es como funciona.</p><pre><code>print(np.zeros(3))
OUTPUT: [0. 0. 0.]

print(np.ones(3))
OUTPUT: [1. 1. 1.]</code></pre><p>Ambas &nbsp;funciones también admiten n-dimensionales. Puedes agregar la forma como una tupla con filas y columnas.</p><pre><code>print(np.zeros((4,5)))
OUTPUT:
[
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
]

print(np.ones((4,5)))
OUTPUT:
[
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
]</code></pre><h2 id="matriz-de-identidad"><strong>Matriz de identidad</strong></h2><p>También puedes generar una matriz de identidad usando una función incorporada en Numpy llamada “eye”.</p><pre><code>np.eye(5)
OUTPUT:
[[1., 0., 0., 0., 0.]
[0., 1., 0., 0., 0.]
[0., 0., 1., 0., 0.]
[0., 0., 0., 1., 0.]
[0., 0., 0., 0., 1.]]</code></pre><h2 id="funci-n-numpy-linspace"><strong>Función <strong>NumPy </strong>l<strong>inspace </strong></strong></h2><p>NumPy tiene el método linspace que genera puntos uniformemente espaciados entre dos números.</p><pre><code>print(np.linspace(0,10,3))
OUTPUT:[ 0.  5. 10.]</code></pre><p>En el ejemplo de arriba, el primer y segundo parámetro son los puntos inicial y final, mientras que el tercer parámetro es el número de puntos que necesitas entre el inicio y el final.</p><p>Aquí está el mismo rango con 20 puntos.</p><pre><code>print(np.linspace(0,10,20))
OUTPUT:[ 0. 0.52631579  1.05263158  1.57894737  2.10526316  2.63157895   3.15789474  3.68421053  4.21052632  4.73684211  5.26315789  5.78947368   6.31578947  6.84210526  7.36842105  7.89473684  8.42105263  8.94736842   9.47368421 10.]</code></pre><h2 id="generaci-n-de-n-meros-aleatorios">Generación de Números Aleatorios</h2><p>Cuando trabajes en problemas de aprendizaje automático, a menudo necesitarás generar números aleatorios. NumPy también tiene funciones integradas para eso.</p><p> Pero antes de comenzar a generar números aleatorios, veamos dos tipos principales de distribuciones.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2020/09/distro-1.png" class="kg-image" alt="distro-1" width="600" height="400" loading="lazy"></figure><h3 id="distribuci-n-normal"><strong>Distribución Normal</strong></h3><p>En una &nbsp;<a href="https://www.mathsisfun.com/data/standard-normal-distribution.html">distribución normal estándar</a>, los valores alcanzan su punto máximo.</p><p>La distribución normal es un concepto muy importante en estadística, ya que se ve en muchos fenómenos naturales. También se le llama "curva de campana".</p><h3 id="distribuci-n-uniforme"><strong>Distribución Uniforme</strong></h3><p>Si los valores de la distribución tienen la probabilidad como una constante, se llama <a href="https://www.investopedia.com/terms/u/uniform-distribution.asp">distribución uniforme</a>. </p><p>Por ejemplo, el lanzamiento de una moneda tiene una distribución uniforme, ya que la probabilidad de obtener cara o cruz en un lanzamiento de moneda es la misma.</p><p>Ahora que sabes cómo funcionan las dos distribuciones principales, generemos algunos números aleatorios.</p><ul><li>Para generar números aleatorios en una distribución uniforme, usa la función rand () de <strong><strong><strong><strong>np.random</strong></strong></strong></strong>:</li></ul><pre><code>print(np.random.rand(10)) # arreglo
OUTPUT: [0.46015141 0.89326339 0.22589334 0.29874476 0.5664353  0.39257603  0.77672998 0.35768031 0.95087408 0.34418542]

print(np.random.rand(3,4)) # matriz 3x4
OUTPUT:[[0.63775985 0.91746663 0.41667645 0.28272243]  [0.14919547 0.72895922 0.87147748 0.94037953]  [0.5545835  0.30870297 0.49341904 0.27852723]]</code></pre><ul><li>Para generar números aleatorios en una distribución normal, use la función randn () <strong><strong><strong><strong>np.random</strong></strong></strong></strong>:</li></ul><pre><code>print(np.random.randn(10))
OUTPUT:[-1.02087155 -0.75207769 -0.22696798  0.86739858  0.07367362 -0.41932541   0.86303979  0.13739312  0.13214285  1.23089936]

print(np.random.randn(3,4))
OUTPUT: [[ 1.61013773  1.37400445  0.55494053  0.23133522]  [ 0.31290971 -0.30866402  0.33093618  0.34868954]  [-0.11659865 -1.22311073  0.36676476  0.40819545]]</code></pre><ul><li>Para generar enteros aleatorios entre un valor inferior y superior, use la función randint () de <strong><strong><strong><strong>np.random</strong></strong></strong></strong>:</li></ul><pre><code>print(np.random.randint(1,100,10))
OUTPUT:[64 37 62 27  4 33 23 52 70  7]

print(np.random.randint(1,100,(2,3)))
OUTPUT:[[92 42 38]  [87 69 38]]</code></pre><p>Se utiliza un <a href="https://en.wikipedia.org/wiki/Random_seed">valor inicial</a> (semilla) si desea que sus números aleatorios sean los mismos durante cada cálculo. Así es como se establece un valor inicial en NumPy.</p><ul><li>Para establecer un valor inicial en NumPy, haz lo siguiente:</li></ul><pre><code>np.random.seed(42)
print(np.random.rand(4))
OUTPUT:[0.37454012, 0.95071431, 0.73199394, 0.59865848]</code></pre><p>Siempre que uses un número de semilla, siempre obtendrás el mismo arreglo generado sin ningún cambio.</p><h2 id="remodelaci-n-de-arreglos"><strong>Remodelación de Arreglos</strong></h2><p>Como científico de datos, trabajarás para reorganizar los conjuntos de datos para diferentes tipos de cálculos. En esta sección, veremos cómo trabajar con las formas de arreglos.</p><ul><li>Para obtener la forma de un arreglo, use la propiedad de <strong>shape</strong></li></ul><pre><code>arreglo = np.random.rand(2,2)
print(arreglo)
print(arreglo.shape)
OUTPUT:[
[0.19890857 0.00806693]
[0.48199837 0.55373954]
]
(2, 2)</code></pre><ul><li>Para reorganizar un arreglo, use la función &nbsp;<strong><strong><strong><strong>reshape()</strong></strong></strong></strong>.</li></ul><pre><code>print(arreglo.reshape(1,4))
OUTPUT: [[0.19890857 0.00806693 0.48199837 0.55373954]]
print(arreglo.reshape(4,1))
OUTPUT:[
[0.19890857]
[0.00806693]
[0.48199837]
[0.55373954]
]</code></pre><p>Para reorganizar permanentemente un arreglo, debe asignar el arreglo reorganizado a la variable "arreglo"</p><p>Además, la reorganización solo funciona si la estructura existente tiene sentido. No puede reorganizar una matriz de 2x2 en una matriz de 3x1.</p><h2 id="datos-de-corte"><strong>Datos de Corte</strong></h2><p>Veamos como obtener datos de arreglos. Los arreglos Numpy trabajan de manera similar a las listas en Python durante las oraciones de recuperación de datos. &nbsp;</p><ul><li>Para cortar un arreglo, haz esto:</li></ul><pre><code>miarreglo = np.arange(0,11)
print(miarreglo)
OUTPUT:[ 0  1  2  3  4  5  6  7  8  9 10]

cortado = miarreglo[0:5]
print(cortado)
OUTPUT: [0 1 2 3 4]

cortado[:] = 99
print(cortado)
OUTPUT: [99 99 99 99 99]

print(miarreglo)
OUTPUT:[99 99 99 99 99  5  6  7  8  9 10]</code></pre><p>Si observas el ejemplo anterior, aunque asignamos el segmento de "miarreglo" a la variable "cortado", el cambio del valor de "cortado" afecta al arreglo original. Esto se debe a que el "la parte cortada" solo apuntaba al arreglo original.</p><p>Para hacer una sección independiente de una arreglo, use la función <strong>copy ()</strong>.</p><pre><code> cortado = miarreglo.copy()[0:5]</code></pre><ul><li>Cortar arreglos multidimensionales funciona de manera similar a los arreglos unidimensionales</li></ul><pre><code>mi_arreglo = np.random.randint(1,30,(3,3))
print(mi_arreglo)
OUTPUT: [
[21  1 20]
[22 16 27]
[24 14 22]
]

print(mi_arreglo[0]) # imprime una sola fila
OUTPUT: [21  1 20]

print(mi_arreglo[0][0]) # imprime un solo valor o fila 0, columna 0
OUTPUT: 21

print(mi_arreglo[0,0]) #forma alternativa de imprimir valor de la  fila0,colu0
OUTPUT: 21</code></pre><h2 id="c-lculos-con-arreglos"><strong>Cálculos con Arreglos</strong></h2><p>Ahora veamos los cálculos con arreglos. NumPy es conocido por su velocidad al realizar cálculos complejos en grandes arreglos multidimensionales</p><p>Intentemos con algunas operaciones básicas.</p><pre><code>nuevo_arreglo = np.arange(1,11)
print(nuevo_arreglo)
OUTPUT: [ 1  2  3  4  5  6  7  8  9 10]</code></pre><ul><li>Suma</li></ul><pre><code>print(nuevo_arreglo + 5)
OUTPUT: [ 6  7  8  9 10 11 12 13 14 15]</code></pre><ul><li>Resta</li></ul><pre><code>print(nuevo_arreglo - 5)
OUTPUT: [-4 -3 -2 -1  0  1  2  3  4  5]</code></pre><ul><li>Suma de Arreglos</li></ul><pre><code>print(nuevo_arreglo + nuevo_arreglo)
OUTPUT: [ 2  4  6  8 10 12 14 16 18 20]</code></pre><ul><li>División de Arreglos</li></ul><pre><code>print(nuevo_arreglo / nuevo_arreglo)
OUTPUT:[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]</code></pre><p>Para <a href="https://airbrake.io/blog/python-exception-handling/zerodivisionerror-2">errores por dividir en cero</a>, Numpy convertirá el valor a NaN (no es un número).</p><p>También hay algunos métodos de cálculo integrados disponibles en NumPy para calcular valores como la media, la desviación estándar, la varianza y otros.</p><ul><li>Suma — np.sum()</li><li>Raíz cuadrada — np.sqrt()</li><li>Media — np.mean()</li><li>Varianza — np.var()</li><li>Desviación estándar — np.std()</li></ul><p>Mientras trabajas con arreglos 2d, a menudo necesitarás calcular la suma, la media, la varianza, etc., por filas o columnas. Puedes utilizar el parámetro de eje opcional para especificar si desea elegir una fila o una columna.</p><pre><code>arreglo2d = np.arange(25).reshape(5,5)
print(arreglo2d)
OUTPUT: [
[ 0  1  2  3  4]
[ 5  6  7  8  9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]
]

print(arreglo2d.sum())
OUTPUT: 300

print(arreglo2d.sum(axis=0))  # suma de columnas
OUTPUT: [50 55 60 65 70]

print(arreglo2d.sum(axis=1)) #suma de filas
OUTPUT: [ 10  35  60  85 110]</code></pre><h2 id="operaciones-condicionales"><strong>Operaciones condicionales </strong></h2><p>También puedes hacer un filtrado condicional con NumPy usando la notación de corchetes. Aquí hay un ejemplo:</p><pre><code>arr = np.arange(0,10)
OUTPUT: [0,2,3,4,5,6,7,8,9]

print(arr &gt; 4)
OUTPUT: [False False False False False  True  True  True  True  True]

print(arr[arr &gt; 4])
OUTPUT: [5 6 7 8 9]</code></pre><h1 id="resumen"><strong>Resumen</strong></h1><p>Cuando se trata de trabajar con grandes conjuntos de datos, NumPy es una herramienta poderosa para tener en su kit de herramientas. Es capaz de manejar cálculos numéricos avanzados y operaciones complejas de arreglos de n dimensiones.</p><p>Te recomiendo que aprendas NumPy si planeas comenzar una carrera en el aprendizaje automático.</p><p><a href="https://colab.research.google.com/drive/1Oa8J_sZXACQJEiMqANIHkftMgUrqSpVt#scrollTo=ITrCTnT6RkWP">Aquí hay un cuaderno de colab de google si deseas probar estos ejemplos.</a></p><p><strong><a href="https://tinyletter.com/manishmshiva">Consigue un resumen de mis artículos</a></strong> &nbsp;y vídeos enviados a tu correo electrónico todos los lunes por la mañana. También puedes <a href="https://www.manishmshiva.com/">Conectarte conmigo</a> aquí.</p><p>Traducido del artículo de <strong><a href="https://www.freecodecamp.org/news/author/manishmshiva/"><strong>Manish Shivanandhan</strong></a> - <a href="https://www.freecodecamp.org/news/numpy-crash-course-build-powerful-n-d-arrays-with-numpy/">Python NumPy Crash Course – How to Build N-Dimensional Arrays for Machine Learning</a></strong><em><br></em></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Valores Falsos en JavaScript ]]>
                </title>
                <description>
                    <![CDATA[ Descripción Un valor falso es algo que se evalúa como FALSO, por ejemplo, cuando verificamos una variable. Solo hay 6 valores falsos en JavaScript: undefined, null, NaN, 0,  "" (string vacía), y por supuestofalse . Comprobando valores falsos en variables  Es posible verificar un valor falso en una ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/valores-falsos-en-javascript/</link>
                <guid isPermaLink="false">5fe511c48c7cd154bb97db83</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Luis Alberto Sinisterra Muñoz ]]>
                </dc:creator>
                <pubDate>Thu, 07 Jan 2021 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2021/01/photo-1530213709681-b7e537c923cc-1-.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <h2 id="descripci-n">Descripción</h2><p>Un valor falso es algo que se evalúa como FALSO, por ejemplo, cuando verificamos una variable. Solo hay 6 valores falsos en JavaScript: <code>undefined</code>, <code>null</code>, <code>NaN</code>, <code>0</code>, <code>""</code> (string vacía), y por supuesto &nbsp;<code>false</code> .</p><h2 id="comprobando-valores-falsos-en-variables"><strong>Comprobando valores falsos en variables</strong></h2><p> Es posible verificar un valor falso en una variable con un condicional simple:</p><pre><code class="language-javascript">if (!variable) {
  // Cuando la variable tiene un valor falso, la condicion es verdadera.
}</code></pre><h2 id="ejemplos-generales"><strong>Ejemplos Generales</strong></h2><pre><code class="language-javascript">var string = ""; // &lt;-- falso

var cadenaLlena = "Algun ejemplo de cadena"; // &lt;-- verdadero

var cero = 0; // &lt;-- falso

var numeroMasGrandeDeCero // &lt;-- verdadero

var arregloVacio = []; // &lt;-- verdadero,exploraremos mas sobre esto a continuación

var objetoVacio = {}; // &lt;-- verdadero</code></pre><h2 id="diversi-n-con-arreglos"><strong>Diversión con arreglos</strong></h2><pre><code class="language-javascript">if ([] == false) // &lt;-- verdadero, ejecutará el código del bloque-if

if ([]) // &lt;-- verdadero, tambien ejecutará el código del bloque-if

if ([] == true) // &lt;-- falso, NO ejecutará el código del bloque-if 

if (![]) // &lt;-- falso,tampoco ejecutará el código del bloque-if </code></pre><h2 id="consideraci-n"><strong><strong><strong><strong>C</strong></strong></strong>onsideración</strong></h2><p>Ten en cuenta el tipo de dato al evaluar un valor en un contexto booleano. Si el tipo de dato del valor debe ser un numero, la evaluación de verdadero/falso puede tener un resultado inesperado:</p><pre><code class="language-javascript">const partido = { equipoA: 0, equipoB: 1 }
if (partido.equipoA)
  // Lo siguiente no se ejecutará debido a la evaluación falsa
  console.log('Equipo A: ' + partido.equipoA);
}</code></pre><p>Una alternativa al caso de uso anterior es evaluar el valor usando <code>typeof</code>:</p><pre><code class="language-javascript">const partido = { equipoA: 0, equipoB: 1 }
if (typeof partido.equipoA === 'number')
  console.log('Equipo A: ' + partido.equipoA);
}</code></pre><p>Traducido del artículo - <strong>Falsy Values in JavaScript</strong></p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
