Hola Frank, Aveces somos impulsivos y sacamos concluciones erroneas. Decir que el for es lento en python y debe ser evitado , porque si lo reemplazas por el sum (un tipo del fold de programación funcional) va más rápido en el benchmarck no es correcto . Los bucles for no son un riesgo de ineficiencia por ellos mismos, es la forma en la que lo usamos que lo hacen ir más o menos rápido.
@@David123456789345 Python es un lenguaje de programación interpretado por la python virtual machine, Nunca programas en python o java si necesitas rapides. Lo haces en C. A controladores de motores los he programado en C. Es correcto que en python usas modulos precompilados hechos en C++ , con interfaces que permiten unir a python y usar esos modulos. Asi se trabaja por ejemplo, en GNU radio, en el procesamiento digital de señales. Usar esos modulos a cambio de codigo de python mejora la velocidad porque no usas la maquina virtual de python. Una funcion de alto nivel no es mejor que un bucle for por si sola. Los modulos de c++ nunca mejoraran el orden de tu algoritmo, En este caso encuentra una forma de reducir el costo depasar de un loop invariant a otro.Pero.. ¿El for debe ser evitado? mi respuesta es no. Si busco velocidad python debe ser evitado.
@@franciscollaryora2032 me imagino que debe ser node xq se usa con react que se especializa en componentes rapidos.. pero no se quiero a opinion tuya, parece que sabes mas que yo x lejos
@@fabiananavarro5556 Para backend use el lenguaje que le sea más comodo. Creo que Go es el más rapido. Pero si nodejs, java o python es su mejor herramienta usela .
En mi humilde opinión creo que no estás considerando otros factores. Por ejemplo, hasta donde sé, python está desarrollado en C. Y en C, usando OMP se reduce considerablemente el tiempo de ejecución, por ejemplo en la suma de los valores de un rango utilizando #pragma omp reduce. Pero esto no quiere decir que de por si el for incremente considerablemente el tiempo de ejecución, sino que estás realizando una comparación desigual.
Hola, primero que nada muy buen video, felicidades :). A modo de sugerencia, creo que sería interesante explicar la diferencia matemática de las operaciones mostradas (complejidad de los algoritmos), un bucle for tiene una complejidad muy diferente a los algoritmos utilizados por numpy o otras librerías. Al estudiar la algorítmica, notamos que la diferencia de tiempo entre for y las otras funciones no se debe al lenguaje en el que están escritas, sino, que se deben a la complejidad del algoritmo. En la documentación oficial de numpy o otras librerías como scipy especifica que algoritmo usa para resolver las operaciones (de hecho en algunas funciones como scipy.optimize.scalar_root, se puede elegir entre que algoritmo usar dependiendo de lo que necesites calcular), un saludo y felicidades por el video 😁
Para este caso no es verdad que sea por algoritmia, no existe una complejidad menor para calcular el promedio que O(n) es imposible algorítmicamente, ya que el promedio es la suma de todas las partes sobre el tamaño, necesitas todas las partes ósea inevitablemente un for (así sea interno). La respuesta está en algo llamado JIT y la definición de interpretado y compilado
Una duda, soy nuevo en python, si necesito "depurar" una lista de objetos traído de pymongo por ej: For doc in db.user.find({}): If user not in users: ..... Cuál sería la mejor manera para hacer dicho ciclo? Por qué veo que cuando me regresa muchos documentos se tarda más de 4 segundos mi endpoint y pues es mucho tiempo para la respuesta, gracias, ojalá alguien me pueda ayudar 🙌
Parece bueno los ejemplo, pero no lo son, ya que usastes cosas numericas, no hay ejemplo de str, o de diccionarios, claro eso numpy lo hace bien al ser numeros.
Excelente infomación. Estaría increíble un video o serie donde muestres estas optimizaciones que ya existen en las diferentes librerías disponibles, como los if, funciones lambda, etc. De 0 a PRO con el mejor código optimizado. Gracias por el aporte, saludos.
Yo los uso, pero no tengo ni idea cuando se trata de usar uno dentro de otro, por lo que tengo que optar por la versión original. Aunque bueno hay ocasiones en que los loops necesitan tener muchas cosas y ahí no son tan combeniente s usar los comprimidos tampoco.
El resultado del bucle con las funciones numpy es impresionante! He leído también que se puede incrementar la velocidad en IF's/ELSE's. Alguna solución? Gracias!
Si, justo el detalle está en identificar qué cosas ya están optimizadas por las librerías disponibles. El principio para resolver un problema esta bien hacerlo así, con un simple “for” como nos lo enseñan en el colegio para después optimizar.
Cosas que deberias de hacer al inicio: 1.Tratar de que tus articulos sean publicadion en publicaciones activas con una buena cantidad de seguidores. 2. Leer mucho 3. "Copiar" a gente exitosa en la plataforma
"Click bait", un nombre como "for vs numpy" hubiese evitado perder mi tiempo. Es un hecho que python es lento, pensé que había una nueva función similar a for y que hacía lo mismo y mejor.
A mi me gustó por que no sabia que se podrían ahorrar bucles en ciertas operaciones sencillas. Lo que sí entiendo es que el video es click bait y te haga pensar que te va a mostrar un método que va a funcionar para todos los casos y que por eso la gente se sienta decepcionada.
excelente. Lo busqué un par de días hasta que encontré el video jiji. Saludos.
Hola Frank, Aveces somos impulsivos y sacamos concluciones erroneas. Decir que el for es lento en python y debe ser evitado , porque si lo reemplazas por el sum (un tipo del fold de programación funcional) va más rápido en el benchmarck no es correcto . Los bucles for no son un riesgo de ineficiencia por ellos mismos, es la forma en la que lo usamos que lo hacen ir más o menos rápido.
Explicate :0
@@David123456789345 Python es un lenguaje de programación interpretado por la python virtual machine, Nunca programas en python o java si necesitas rapides. Lo haces en C. A controladores de motores los he programado en C. Es correcto que en python usas modulos precompilados hechos en C++ , con interfaces que permiten unir a python y usar esos modulos. Asi se trabaja por ejemplo, en GNU radio, en el procesamiento digital de señales. Usar esos modulos a cambio de codigo de python mejora la velocidad porque no usas la maquina virtual de python. Una funcion de alto nivel no es mejor que un bucle for por si sola. Los modulos de c++ nunca mejoraran el orden de tu algoritmo, En este caso encuentra una forma de reducir el costo depasar de un loop invariant a otro.Pero.. ¿El for debe ser evitado? mi respuesta es no. Si busco velocidad python debe ser evitado.
@@franciscollaryora2032 me imagino que debe ser node xq se usa con react que se especializa en componentes rapidos.. pero no se quiero a opinion tuya, parece que sabes mas que yo x lejos
@@fabiananavarro5556 Para backend use el lenguaje que le sea más comodo. Creo que Go es el más rapido. Pero si nodejs, java o python es su mejor herramienta usela .
Creo que este video lo vi en un canal de habla inglesa, esta bueno que lo hayas traducido. También estaría bueno hacer uno de 'strings'
Ojalá en la vida real usemos FOR solo para sumar numeritos de una secuencia.
Muchas Gracias por el vídeo. Me ayuda a entender más sobre está industria.
Excelente video amigo! Te dejo un saludo enorme y un LIKE gigante. Gracias por compartir
Very helpful..thanks a lot.
En mi humilde opinión creo que no estás considerando otros factores. Por ejemplo, hasta donde sé, python está desarrollado en C. Y en C, usando OMP se reduce considerablemente el tiempo de ejecución, por ejemplo en la suma de los valores de un rango utilizando #pragma omp reduce. Pero esto no quiere decir que de por si el for incremente considerablemente el tiempo de ejecución, sino que estás realizando una comparación desigual.
Interesante, que tal seria for vs Generadores o Comprehensions o iter ?, creo seria como una alternativa correcta en vez de irse a Numpy
Por qué de todas las opeeraciones básicas que Python tiene una de bucle es la única que no está escrita en C por debajo? O hay más?
Hola, primero que nada muy buen video, felicidades :). A modo de sugerencia, creo que sería interesante explicar la diferencia matemática de las operaciones mostradas (complejidad de los algoritmos), un bucle for tiene una complejidad muy diferente a los algoritmos utilizados por numpy o otras librerías. Al estudiar la algorítmica, notamos que la diferencia de tiempo entre for y las otras funciones no se debe al lenguaje en el que están escritas, sino, que se deben a la complejidad del algoritmo. En la documentación oficial de numpy o otras librerías como scipy especifica que algoritmo usa para resolver las operaciones (de hecho en algunas funciones como scipy.optimize.scalar_root, se puede elegir entre que algoritmo usar dependiendo de lo que necesites calcular), un saludo y felicidades por el video 😁
Para este caso no es verdad que sea por algoritmia, no existe una complejidad menor para calcular el promedio que O(n) es imposible algorítmicamente, ya que el promedio es la suma de todas las partes sobre el tamaño, necesitas todas las partes ósea inevitablemente un for (así sea interno). La respuesta está en algo llamado JIT y la definición de interpretado y compilado
man I missed this kind of tutorials lol. Great work here, thanks!!!
Una duda, soy nuevo en python, si necesito "depurar" una lista de objetos traído de pymongo por ej:
For doc in db.user.find({}):
If user not in users:
.....
Cuál sería la mejor manera para hacer dicho ciclo? Por qué veo que cuando me regresa muchos documentos se tarda más de 4 segundos mi endpoint y pues es mucho tiempo para la respuesta, gracias, ojalá alguien me pueda ayudar 🙌
Parece bueno los ejemplo, pero no lo son, ya que usastes cosas numericas, no hay ejemplo de str, o de diccionarios, claro eso numpy lo hace bien al ser numeros.
Tal cual,
por eso en el titulo dice "(cuando sea posible)" XD
Tienes toda la razón
Excelente infomación. Estaría increíble un video o serie donde muestres estas optimizaciones que ya existen en las diferentes librerías disponibles, como los if, funciones lambda, etc. De 0 a PRO con el mejor código optimizado. Gracias por el aporte, saludos.
Buena idea. Gracias!
Probaste los loop for comprehension?, Están mejor optimizados que los for estándar. Un saludo, y felicidades por el video!!.
Yo los uso, pero no tengo ni idea cuando se trata de usar uno dentro de otro, por lo que tengo que optar por la versión original. Aunque bueno hay ocasiones en que los loops necesitan tener muchas cosas y ahí no son tan combeniente s usar los comprimidos tampoco.
Excelente video !
Qué programemos en C, dice :3
Pensaba que también habría recursividad
Todo bien pero as echo solo ejemplos de suma de valores ahí de ley hay mejores opciones pero usa para manipular información de una lista
El resultado del bucle con las funciones numpy es impresionante!
He leído también que se puede incrementar la velocidad en IF's/ELSE's. Alguna solución? Gracias!
if =! es mucho mas rapido
@@trezeadventure tienes algun ejemplo?
Buen dato y yo siempre creí que usar FOR era de gente pro, soy principiante.
Si, justo el detalle está en identificar qué cosas ya están optimizadas por las librerías disponibles. El principio para resolver un problema esta bien hacerlo así, con un simple “for” como nos lo enseñan en el colegio para después optimizar.
Todos los pros, fueron principiantes alguna vez
Muchas gracias por este vídeo tan útil!
Interesante.
Frank algunos tips para crecer en medium?
Cosas que deberias de hacer al inicio:
1.Tratar de que tus articulos sean publicadion en publicaciones activas con una buena cantidad de seguidores.
2. Leer mucho
3. "Copiar" a gente exitosa en la plataforma
finally a legit bot that i can actually make a return
god bless u xdd
all workеd
"Click bait", un nombre como "for vs numpy" hubiese evitado perder mi tiempo. Es un hecho que python es lento, pensé que había una nueva función similar a for y que hacía lo mismo y mejor.
Exacto. Video sin sentido
pero, no entiendo... son operaciones numéricas. A quien le importa usar for para eso. Esperaba ver algo util.
A mi me gustó por que no sabia que se podrían ahorrar bucles en ciertas operaciones sencillas. Lo que sí entiendo es que el video es click bait y te haga pensar que te va a mostrar un método que va a funcionar para todos los casos y que por eso la gente se sienta decepcionada.