[Python] Hilo general

hda

Buenas, chavales. A ver si me podéis echar una manilla que me estoy partiendo los cuernos.

Estoy usando Pandas.DataFrame.duplicated() y la máscara booleana me está devolviendo ocurrencias que no están duplicadas. WTF?

aaa=df[df["SHA256"].duplicated()]

Como veis las tuplas 42 y 79 tienen valores SHA256 diferentes :S


Solucionado:

aaa=df[df["SHA256"].duplicated(keep=False)]

Así conservo todos los duplicados. Genial. Gracias. Solo he tenido que escribirlo para darme cuenta xDDDD

1 respuesta
kikonazoo

#931 Mira los argumentos de duplicated(). Por defecto te marca como True los duplicados excepto la primera ocurrencia. Es posible que el hash 42 solo aparezca dos veces en tu df y te marque solo la segunda como duplicada.

1 1 respuesta
hda

#932 sep, era justo eso. Típica tontería en la que no caes. Ya está arreglado. Gracias igualmente :)

B

Camaradas, estoy con un tema de menú semanal en un bot de telegram. Partiendo de que creo que no se puede tener más de un constructor en python, pregunta de diseño de objetos, ¿qué es mejor?

Esto:

class Persona:
  def __init__(self, nombre):
    self.nombre = nombre

o esto:

class Persona:
  nombre = ''


calvo = Persona()
calvo.nombre = 'Mike'

También puede haber más opciones, me quedo a la escucha

PD: saludos, Darmian

1 respuesta
bLaKnI

#934 Lo primero es lo correcto.
Lo segundo casi es considerable como "constantes de clase". Yo lo uso para ello, por ejemplo paths fijos, etc...

class Foo():
   PATH_FICHEROS = "/path/to/files"
   MAIN_COLOR = "#FF0000"

   ...

   def __init__(self,*args, **kwargs):
      self.A = ...
      ...

Luego llamas a los valores en el codigo dentro de los metodos de clase tal que "Foo.PATH_FICHEROS" y en atributos de metodo, directamente por su nombre, sin el "Class."

Aunque si usas los "@dataclass" (https://docs.python.org/3/library/dataclasses.html) entonces is the way.

1
desu

Como haceis para gestionar las dependencias de dev entre multiples sistemas/arquitecturas (windows, linux)?

No puedo tener pip/conda con un requirements.txt porque en windows las librerias requieren mil cosas manuales... y en linux para release otras. Imagino que lo suyo seria montarme un docker para tener el entorno de python ahi metido con las dependencias y deserollar cargando ese entorno.

Nunca he usado el python que tenia en un docker, algun link de como se haria? No quiero tener que ejecutar desde el docker, quiero cargar en entorno del docker en mis paths de entorno local... Harias algo distinto? Sigo con pip/conda? He visto que la gente esta tirando de poetry, nunca lo he usado, me tengo que pasar a eso?

(Obviamente no tendria que estar usando python pero asi es la vida)

1 1 respuesta
B

#936 Hexan me recomendó poetry y es una pasada, no necesitas tener anaconda ni nada del estilo. Pero últimamente estoy usando como IDE VS Code y WSL así siempre tienes un linux por debajo para los entornos y librerías.

Para el curro he tenido que desarrollar una app en Django, el desarrollo lo he hecho en windows con wsl y el deploy en un linux de aws sin tener que cambiar nada de las librerías

1 respuesta
desu

#937 No puedo usar WSL... Voy a mirar poetry a ver, quizas esta mas actualizado y me soluciona la vida...

Ya que estoy os dejo esta referencia que suelo consultar para hacer dockers de python:
https://pythonspeed.com/docker/

edit: Estoy probando en mi pc personal

Primero wsl (lei que el wsl2 da problemas)
https://docs.microsoft.com/es-es/windows/wsl/install-win10

He puesto ubuntu de la microsoft store

He instalado poetry, pip y dephell
https://dephell.readthedocs.io/cmd-deps-convert.html

Pasar el requirements a format poetry

dephell deps conver --from=requirements.txt --to=pyproject.toml

Te hara a;adir descripcion, autores manual si no los tenias...

Haces poetry install y todo perfecto.

En vscode bien, en pycharm no puedo seleccion el interpete de wsl...

1 1 respuesta
bLaKnI

#938 En que librerias has chocado en Windows vs Linux?

2 respuestas
HeXaN

Ya dije que poetry iba de puta madre.

#939 PyGMO, por ejemplo.

1 respuesta
bLaKnI

#940 PyGMO! Acabo de leer la main de los docs. Para que la usas? Es una barbaridad de libreria... En que campo estudias exactamente?

1 respuesta
HeXaN

#941 Lo uso para montar algoritmos genéticos multiobjetivo con islas.

1 respuesta
desu

#939 rasterio, sentinelsat, algunas dependencias internas. No s'e es raro.

He pedido que me pongan lo del wsl, cuando uso binarios de librerias tambien suele ser mas facil que saen *unix

bLaKnI

#942 Si, eso he entendido de la pagina, que hablaba de lo de algo con achipielago thredeado (10 pasos, etc...). Pero por eso digo: en que campo estudias o desarrollas tu PhD? Biotecnología?

1 respuesta
HeXaN

#944 Optimizo procesos industrial. Nada que ver con biotecnología.

1 respuesta
bLaKnI

#945 Suelta un poco anda. Un poco de ejemplo. Tengo mucha curiosidad.
Puedes poner un ejemplo de "problema" en tu sector/empresa, que hayas abordado por optimizarlo mediante un algoritmo de tipo DE o cualquiera de los citados?

2 respuestas
Fyn4r

#946 https://scholar.google.es/scholar?hl=es&as_sdt=0%2C5&q=optimization+by+genetic+algorithm&btnG=&oq=optimization+by+genetic+al

1
HeXaN

#946 Usamos los algoritmos genéticos para la selección de características y para la optimización de la arquitectura de las redes neuronales que hemos diseñado (esto es una locura computacionalmente hablando).

También usamos Differential evolution para diseñar métricas que distribuyen los pesos de las instancias en una curva según su importancia de cara al proceso.

2 respuestas
bLaKnI

#948 La rehostia. Es decir que usáis a los genéticos, para caracterizar a las NN... vaya buena rizada de rizo! Muchisima especialización y la pregunta sería: en que cojones requerís semejante precisión? Sector industrial? O estáis con un IDi para patentar una nueva release de algún producto para laboratorio o electromecánica?

El otro día había por aquí un compañero que andaba loco con "temas de tuberias subsuelo" por aquí. Viendo esto: http://esa.github.io/pygmo/tutorials/introduction_tsp.html veo que el chico tenia otros posibles enfoques...

3 respuestas
Ranthas

#949 Posiblemente, por las características que dice el pato, haga algo relacionado con la detección de anomalías

1 respuesta
HeXaN

#949 #950 Mi equipo hace de todo pero estamos enfocados a problemas de regresión/series temporales y todo lo que ello conlleva: EDA, preprocesamiento, predicción, análisis... Pero esto es el hilo de Python, cabrones xD

1 respuesta
B

mis respetos HeXaN tiene pinta de molar muchísimo tu trabajo. ¿Qué estudiaste?

PD: Python

bLaKnI

#951 OK, ¿entonces estás en la UdG, en el proyecto H2020, en equipo centrado en el 2º pilar: Liderazgo Industrial? ¿O directamente en alguno de los puntos de la Joint Task Force EC-ESA-EDA?

1 respuesta
HeXaN

#953 Estoy en mi patio que voy a pegarme un chapuzón en la piscina. Un saludo.

P.D.: no estoy en ningún sitio de esos xD


Y hasta aquí el tema, cabrones xD

1 respuesta
bLaKnI

#954 xD
Magnífico.

Entonces estas en Defensa. Solo alguien que esta en Defensa no quiere decir que está en Defensa.

2
c0b4c

Pygmo es la puta hostia; lo usé para mi tfm y lo estoy usando ahora para unos proyectos con el phd.

Y estoy pensando en ir a trabajar con el ACT un par de meses, a ver si me dejan desarrollar un algoritmo de optimizacion multi-objetivo que tengo en mente para pygmo.

1 respuesta
bLaKnI

#956 Pero poned un ejemplo mas o menos claro del motivante de usar dicha librería! Para que la usaría "un cualquiera" no especializado en X campo?

Voy ha hacer un "programita" en Python para X. Hostias! Voy a usar PyGMO que me irá de puta madre para atacar Y.

1 2 respuestas
HeXaN

#957 Es que es una librería especializada así que o tienes un problema que encaje con lo que ofrece o es tontería forzar la máquina xD

c0b4c

#957 no creo que Pygmo sea necesario para problemas ‘corrientes’.

Pygmo viene muy bien para problemas en los que no conozcas la expresion analitica, o bien esta sea muy compleja. Esto solo se da en casos que tengas software externo (black-box), o bien trabajes en un problema muy dificil de optimizar por otros medios porque no es continuo, no es derivable, etc...

En definitiva, no creo que una libreria de optimizacion estocastica sea necesaria para uso corriente.

1 respuesta
R

#959 paq lo usaste tu?

2 respuestas