[Python] Hilo general

Krules

#960 pa hacerse er xulooo

3
c0b4c

#960 optimización de blindaje contra fotones y neutrones, y ahora estoy con optimizacion en codigos de sistemas.

1 respuesta
R

#962 pero cuanto más gordo el muro mejor no?

5 1 respuesta
B

jajaja voy a abandonar MV, cada día me siento menos preparado

1
hda

#963 excepto si es de poliespán xD

Unrack

#948 #949 la parte de selección de características es más fácil de ver. Si te interesa la búsqueda de arquitecturas busca en la bibliografía NAS (neural architecture search). Una pasada.

Pato, en cuanto a lo último que comentas no lo he entendido muy bien. Tienes algún paper a mano?

1 respuesta
HeXaN
#966Unrack:

Pato, en cuanto a lo último que comentas no lo he entendido muy bien. Tienes algún paper a mano?

No tengo papers a mano, la verdad.


Structural Pattern Matching
https://www.python.org/dev/peps/pep-0622/

https://www.mail-archive.com/[email protected]/msg108627.html

Muy interesante.

1 1 respuesta
B

#967 pues mola, se parece mucho a Scala, Python se está convirtiendo en algo realmente serio

1
Isengard

buenas,

necesito una ayuda a nivel de entendimiento... Quiero meter python en un docker... vale la imagen y tal la tengo claro pero una vez metida como hago uso de ella... Me meto por la consola de docker para usarla la siempre o como... ya os digo que es algo de entendimiento puro y duro de como usar la imagen
Mi idea es tener una imagen con python meterle toda la mierda que quiera probar y si me toca los huevos la borro y a empezar de nuevo...

3 respuestas
eondev

#969 mete una imagen de python, creas un volumen a un directorio donde tengas tus proyectos, workdir sobre esa ruta y ejecutas como comando en el dockerfile un while true sleep 1.

Así tienes siempre ese contenedor en ejecución y puedes enguarrar todo lo que quieras

1 respuesta
bLaKnI

#970 O soy yo, ho hemos entendido distinto lo que pregunta #969 ...

Creas el Docker compose o el docker file de la imagen de Python con un montado de directorio de trabajo. Ahí van tus codigos. La imagen la acceder por ssh 22 normal y corriente en el linux que haya ahí (Alpine seguramente) y a correr. Y luego esto: https://www.jetbrains.com/help/pycharm/using-docker-as-a-remote-interpreter.html

1 respuesta
HeXaN
#969Isengard:

Mi idea es tener una imagen con python meterle toda la mierda que quiera probar y si me toca los huevos la borro y a empezar de nuevo...

Para eso tienes los entornos virtuales, no necesitas Docker. Vamos, el poetry que tanto he citado por aquí.

hda

Acabo de hacer mis primeras manitas con gis para echarle un cable a mi chica con su tesis.

He parseado de la web del miteco todos los grupos y de cada grupo todas las especies invasoras en España. Además de parsear los pdfs de cada especie e integrarlos en un excel, he descargado todos los archivos de mapeado GIS para cada especie, que indica dónde esa se encuentra. Luego he integrado todas las especies en un único mapa y de ahí hemos sacado las especies restringidas a la cuenca mediterránea española.

Datos procesados, por si os interesa:

  • Especies invasoras en España totales 190 en 11 grupos
  • Especies invasoras en España con información cartográfica 117 en 10 grupos
  • Especies invasoras en España con información cartográfica en el mediterráneo español 101 en 10 grupos

Cómo mola, la verdad. Pensar que lo que me ha llevado unas horas automatizar y calcular podría haber llevado semanas... sienta bien. Además, está preparando una review sobre el estado del arte para su tesis, y esta info destilada le viene guay D:

2 1 respuesta
HeXaN

#973 Y esto sólo es el principio jajaja.

1 respuesta
hda

#974 ya ves. También es la primera vez que trasteo con un parser pdf. Qué difíciles son de manejar, no me extraña que los ereaders lo tengan jodido.

Ah, y haciendo todo esto, he encontrado unos cuantos errores en el MITECO, de coherencia o formato, o estandarización. Incluso un link a un archivo GIS que enlaza a un pdf equivocadamente xD

eondev

#971 Estás diciendo lo mismo xD. Sólo que yo estoy detallándole el cómo hacer el dockerfile para darle uso.
Pero vamos como dice @HeXaN no hace falta eso con Python teniendo entornos virtuales xD

1 respuesta
aIvans

#976 Yo veo bien que use docker ya que, el funcionamiento va a ser prácticamente el mismo cuando lo haga con otro lenguaje además, lo único que tiene que hacer cuando quiera testear cosillas es levantar el container y ya está.

1 respuesta
Isengard

Gracias por las respuestas... voy a echarle un vistazo a poetry a ver si me vale que imagino que sí. Si es que mi problema, por desconocimiento, es que me pongo a trastear con python y tal y la lía con las versiones y demás y dejo el linux echo mierda... por eso veía más factible lo del docker y a volar.

eondev

#977 pues si, así curro yo con windows. Wsl2 como backend para docker y el win impoluto sin guarrerias ni nada xD

1 1 respuesta
B

.

1 respuesta
eondev

#980 qué va, me va super super rápido. Y fijate que estoy compilando aplicaciones C++ y Qt un poco tochas xD

Además uso vcxsrv y las ventanas de las aplicaciones con gui corriendo sobre wsl se ven en Windows y tienen un rendimiento perfecto.

Es brutal xD

1 respuesta
B

.

1 respuesta
hda

#982 tengo entendido que con wsl2 ha mejorado mucho el asunto.

1 respuesta
desu

#983 He leido lo contrario, me mantengo en wsl1 que puse el otro dia de momento el cual me fue perfecto, gracias por la sugerencia @ .

https://news.ycombinator.com/item?id=22873722
https://news.ycombinator.com/item?id=23090143


Duda tecnica sobre Numpy

Me ha dicho alguien que numpy internamente paraleliza tu codigo utilizando el maximo numero de thrads disponibles de la maquina. Operaciones de for, busqueda, transformaciones.... Es esto cierto? Hay alguna operacion en que sea cierto? Estoy googleando al respeto mis compa;eros me dicen que no es asi. (Edito: a ver para transformaciones que le pasas una funcion por parametro esto si que es casi seguro, pero estoy buscando mas info y no encuentro)

Otra duda, tambien me han dicho que en numpy al realizar busquedas se hacen algoritmos de optimizacion como branch and bound para encontrar rapido los elementos (esto tambien se usaria para iterar, transformar...) es esto cierto?

4 respuestas
B

.

1 respuesta
eondev

#985 Al revés, con WSL2 virtualizas Linux al mismo nivel que Windows.
#984 Lo que no debes es tener el código o los recursos que necesites usar en Windows, debes tenerlo dentro del espacio de WSL2. WSL2 accede mediante un recurso de red a todo lo que esté fuera, por eso va lento.

1 respuesta
B

.

1 respuesta
eondev

#987 D:

Slowbro

#984 Siempre he entendido que el gran truco de numpy era que los arrays los guardaba de forma contigua y homogenea en memoria principal, además de los metadatos. Esto mola porque vas a llenar tus caches de datos asociados a tu computación, por lo que reduces muchisimo las latencias (y energia, ojo). Además, de la localidad espacial, tienes unas instrucciones vectoriales preciosas (SIMD) que de esta forma se aprovechan muy bien.

Luego se que hay operaciones que usan por debajo multithreaded BLAS/MKL, pero no creo que sea lo habitual.

1 respuesta
desu

#989 Si la velocidad de numpy es debido a lo que dices lo conozco. No se hasta que punto numpy que hace en C y que en Python. Pero estos temas de eficiencia seguro que son C para controlar las alocaciones e iterar con punteros (imagino) modificar memoria con los punteros sin dereferenciar y operaciones de ese estilo. Imagino que el objetivo es todo esto no lo he mirado. No se como entra el SIMD en esto, me suena que lei que no hace falta hacer nada a nivel de developer para que la CPU+compilador te optimicen todo.

Clarifico mi duda viene que he hecho un prototipado de un algoritmo y lo he hecho a python a pelo todo. Haciendo algunas transformaciones de numpy también a mano porque no me se numpy de memoria ni otras librerías y era algo sencillo. He re implementado rasterio, mascaras, cropeado y otra libreria de poligonos bàsicament... Asi tengo el prototipo y despues es implementar la libreria para que sea eficiente.

Y hoy he estado mirando las librerias de rasterio a ver como implementan lo que he hecho de manera eficiente y lo hacen practicamente igual... utilizan las mismas ideas y operaciones. La he clavado bastante. xd Y de hecho todo es python y la clave esta en usar numpy por debajo...

Entonces entiendo que la única diferencia (amortizada) con mi código es el tema de numpy de lo que comentas para las iteraciones.

Y esta diferencia con mi codigo seria esta optimizacion y luego el tema del paralelismo... No se si alguien sabe algo.

Espero que se haya entendido, gracias por tu coment, si tengo un rato para mirarme numpy lo mirare por curiosidad... porque hoy ya he visto que mi codigo y el de rasterio se puede decir que es equivalente.

Obviamente he recibido comentarios por re inventar la rueda... Y por eso esto picado con el tema. Pero aclaro que pasar mi codigo de python a rasterio (que se podria usar numpy directamente) ha sido unas horas (20 lineas de codigo).

Edit: vaya tochopost @Jastro si quieres mueve el hilo a parte porque hablamos de implementacion interna de librerias.