Ayuda programacion Python
La vida al margen del deporte (la hay)

Trasgus.
Mensajes: 29195
Registrado: 15 Nov 2005, 20:56

Re: Ayuda programacion Python

por Trasgus. » 24 May 2018, 00:27

acabo de ver el tuyo, sale perfecto y rapido, si que le di vueltas

Roderic
Mensajes: 31847
Registrado: 18 Oct 2011, 00:58
Ubicación: Cuñado Cum Laude

Re: Ayuda programacion Python

por Roderic » 24 May 2018, 00:31

Si lo quieres condensar aún más, ni es necesario usar las sizes

Código: Seleccionar todo

a=arange(10,31,10)
b=arange(2,10,2)
c=arange(1,6,1)

a=a.reshape(-1,1,1)
b=b.reshape (1,-1,1)
c=c.reshape(1,1,-1)

#volumen
V=a*b*c
#suma de lados
S=a+b+c
baaarliin escribió:Dejad a las chicas en paz, en serio, no seáis putos pesados. Mejor morir solo que ser un jodido plasta.

Trasgus.
Mensajes: 29195
Registrado: 15 Nov 2005, 20:56

Re: Ayuda programacion Python

por Trasgus. » 24 May 2018, 00:32

Roderic escribió:es una explicacion mala a mi juicio

Aparte que es eso de nb=nb??

Las vas a liar de cojones si haces arrays auxiliares de unos que no son necesarios.
Si si, es que habia empezado a escribir antes de que editaras, pense que seria necesiario ir creando los arrays de esa forma, y mi objetivo era crear estos arrays para poder usarlos en la funcion
[ 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10.
10. 10. 10. 10. 10. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20.
20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 30. 30. 30. 30. 30.
30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30.]
[ 2. 2. 2. 2. 2. 4. 4. 4. 4. 4. 6. 6. 6. 6. 6. 8. 8. 8.
8. 8. 2. 2. 2. 2. 2. 4. 4. 4. 4. 4. 6. 6. 6. 6. 6. 8.
8. 8. 8. 8. 2. 2. 2. 2. 2. 4. 4. 4. 4. 4. 6. 6. 6. 6.
6. 8. 8. 8. 8. 8.]
[ 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3.
4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1.
2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4. 5. 1. 2. 3. 4.
5. 1. 2. 3. 4. 5.]
El nb=nb pues es tonteria, de escribir y borrar, lo puse directmente sin depurar el codigo de ahi esas tonterias, como tampoco es necesario que sean unidimensionales

Trasgus.
Mensajes: 29195
Registrado: 15 Nov 2005, 20:56

Re: Ayuda programacion Python

por Trasgus. » 24 May 2018, 00:39

Joder, el último es brutal, se queda en nada, ¿por qué al meter el -1 toma el tamaño del array original?

Roderic
Mensajes: 31847
Registrado: 18 Oct 2011, 00:58
Ubicación: Cuñado Cum Laude

Re: Ayuda programacion Python

por Roderic » 24 May 2018, 00:39

ese tipo de arrays si mal no recuerdo te los crea el método ogrid, que se usa para el plot3d
baaarliin escribió:Dejad a las chicas en paz, en serio, no seáis putos pesados. Mejor morir solo que ser un jodido plasta.

Roderic
Mensajes: 31847
Registrado: 18 Oct 2011, 00:58
Ubicación: Cuñado Cum Laude

Re: Ayuda programacion Python

por Roderic » 24 May 2018, 00:40

Porque el -1 asume implícitamente el tamaño del array si no lo conoces
baaarliin escribió:Dejad a las chicas en paz, en serio, no seáis putos pesados. Mejor morir solo que ser un jodido plasta.

Roderic
Mensajes: 31847
Registrado: 18 Oct 2011, 00:58
Ubicación: Cuñado Cum Laude

Re: Ayuda programacion Python

por Roderic » 24 May 2018, 00:43

No es por tirarme el pisto pero hace unos años acabé componiendo un conjunto de scripts y módulos que hacían ese tipo de operaciones y cosas más tochas para computación técnica. En total podrían haber hasta siete u ocho variables a la vez así que imagínate pensar en ocho dimensiones, que no todas podrían ser a la vez y su significado variaba según el tipo de datos de entrada etc.

Aprendí numpy a medida que iba desarrollándolo. Todavía ni sabía programar con clases, pero no hizo mucha falta.

Lo acabaron comprando un centro de investigación chino porque no tenían tiempo para poner a nadie a componer un programa parecido. Nunca supe si realmente acabaron usándolo porque no me preguntaron nunca como usarlo.
Última edición por Roderic el 24 May 2018, 00:44, editado 1 vez en total.
baaarliin escribió:Dejad a las chicas en paz, en serio, no seáis putos pesados. Mejor morir solo que ser un jodido plasta.

Trasgus.
Mensajes: 29195
Registrado: 15 Nov 2005, 20:56

Re: Ayuda programacion Python

por Trasgus. » 24 May 2018, 00:43

Viene a ser lo mismo que cuando buscas la posicion -1 de un vector y te toma el ultimo valor del array, ¿si hubieses puesto -2 tomaria como valor el tamaño-1?

Roderic
Mensajes: 31847
Registrado: 18 Oct 2011, 00:58
Ubicación: Cuñado Cum Laude

Re: Ayuda programacion Python

por Roderic » 24 May 2018, 00:45

Buena pregunta. Lo acabo de probar y no, da lo mismo con cualquier entero negativo.
baaarliin escribió:Dejad a las chicas en paz, en serio, no seáis putos pesados. Mejor morir solo que ser un jodido plasta.

Roderic
Mensajes: 31847
Registrado: 18 Oct 2011, 00:58
Ubicación: Cuñado Cum Laude

Re: Ayuda programacion Python

por Roderic » 24 May 2018, 00:48

Apréndete a usar los métodos de reshape y roll, para hacer shift de dimensiones. Son bastante básicos y potentes. Con el reshape (1,-1) equivale a el transpose, va a gustos.

Luego hay otros como c_ o r_ o flatten(), ravel etc que hacen cosas semejantes.

Para hacer un flip en la dimensión que toca (los puntos suspensivos indican que puede haber otras enmedio)

Código: Seleccionar todo

 
 Array[:, :, ... , ::-1, ..., :]
baaarliin escribió:Dejad a las chicas en paz, en serio, no seáis putos pesados. Mejor morir solo que ser un jodido plasta.

Trasgus.
Mensajes: 29195
Registrado: 15 Nov 2005, 20:56

Re: Ayuda programacion Python

por Trasgus. » 24 May 2018, 00:59

Roderic escribió:No es por tirarme el pisto pero hace unos años acabé componiendo un conjunto de scripts y módulos que hacían ese tipo de operaciones y cosas más tochas para computación técnica. En total podrían haber hasta siete u ocho variables a la vez así que imagínate pensar en ocho dimensiones, que no todas podrían ser a la vez y su significado variaba según el tipo de datos de entrada etc.

Aprendí numpy a medida que iba desarrollándolo. Todavía ni sabía programar con clases, pero no hizo mucha falta.

Lo acabaron comprando un centro de investigación chino porque no tenían tiempo para poner a nadie a componer un programa parecido. Nunca supe si realmente acabaron usándolo porque no me preguntaron nunca como usarlo.
Yo es la primera vez que paso de dos dimensiones, como comente el otro dia, no soy informatico, sino electronico y nunca me habia aventurado a dar mas alla de la asignatura de primero de ingenieria, y todo porque en su dia saque matricula y fue en C, despues con la llegada de bolonia estuve un año con C++, pero no les debio convencer mucho y al año siguiente pusieron python

Mi problema con esta asignatura es que no es de ingenieria, sino de fisicas, les dije que si de primeras pensando que seria igual y resulta que el temario es diferente, me toco aprender a resolver ecuaciones diferenciales con odeint y a imprimir graficas con matplotlin, pero bueno, que todo el problema sea aprender cosas, y te digo otra vez que muchas gracias

No me quiero imaginar el dolor de cabeza y/o los esquemas que tuviste que hacer para programar en 8 dimensiones y con 7 variables, menuda locura

Roderic
Mensajes: 31847
Registrado: 18 Oct 2011, 00:58
Ubicación: Cuñado Cum Laude

Re: Ayuda programacion Python

por Roderic » 24 May 2018, 01:06

Yo di el salto a Python de motu proprio porque había un código que habían hecho con eso y tenía que ver si era capaz de usarlo. Al final decidí hacerlo por mi cuenta de cero en lugar de adaptar una parte de aquello.

Python es amplio. El módulo numpy para esas cosas de matrices es bastante útil pero no es eficiente. C o Fortran todavía se emplean para hacer operaciones potentes, pero se pueden crear librerías que usen esas funciones y usar Python como front end. Otra ventaja de Python es su facilidad para elaborar gráficos guapos con matplotlib. Luego tienes la interfaz interactiva Ipython que al principio me gustaba pero acabé usando la consola habitual de Python y a veces con la opción -pylab (que importas matplotlib y numpy de inicio y alguna cosa más creo).

Ah sí, ahora la nueva versión de Ipython por defecto me plotea los gráficos dentro de la consola, con lo que es un dibujo para hormigas. A mí me gustaba la opción anterior donde tenías ventanas flotantes que podías hacer zoom y esas cosas. Tendré que ver qué opciones hay de configuración.
baaarliin escribió:Dejad a las chicas en paz, en serio, no seáis putos pesados. Mejor morir solo que ser un jodido plasta.

Trasgus.
Mensajes: 29195
Registrado: 15 Nov 2005, 20:56

Re: Ayuda programacion Python

por Trasgus. » 24 May 2018, 01:08

Roderic escribió:Apréndete a usar los métodos de reshape y roll, para hacer shift de dimensiones. Son bastante básicos y potentes. Con el reshape (1,-1) equivale a el transpose, va a gustos.

Luego hay otros como c_ o r_ o flatten(), ravel etc que hacen cosas semejantes.

Para hacer un flip en la dimensión que toca (los puntos suspensivos indican que puede haber otras enmedio)

Código: Seleccionar todo

 
 Array[:, :, ... , ::-1, ..., :]
Las funciones las conozco, aunque no sabria en que ambito utilizarlas, lo mismo me pasaba con el broadcasting y con reshape, sabia que era pero no habia comprendido su utilidad para manejar arrays de varias dimensiones, ya te digo que todo esto es nuevo para mi.

Trasgus.
Mensajes: 29195
Registrado: 15 Nov 2005, 20:56

Re: Ayuda programacion Python

por Trasgus. » 24 May 2018, 01:17

yo estoy con el python 2.x y python 3.x y en el, las ventanas de matplot siguen siendo flotantes, el ipython ni lo conocia.

Fortran, me aparecio hace unos años un chaval del plan antiguo pidiendome ayuda con ello, evidentemente le dije que no, que la parte de la asignatura de automatizacion lo que quisiese, pero que no tenia ni idea de ese lenguaje de programacion, aun asi, algun dia intente echarle una mano descifrando que suponia que hacian el codigo en los examenes que tenia resuleto y sudores frios.

Ahora, la palma siempre se lo llevara el lenguaje emsamblador, nunca he perdido mas neuronas que programando PICs con emsamblador, y lo peor es que te termina gustando aunque hace ya mucho que no lo utilizo

Roderic
Mensajes: 31847
Registrado: 18 Oct 2011, 00:58
Ubicación: Cuñado Cum Laude

Re: Ayuda programacion Python

por Roderic » 24 May 2018, 01:23

Si controlas algo de Matlab/Octave, esta tabla de equivalencias puede ayudar para numpy o viceversa

https://docs.scipy.org/doc/numpy/user/n ... users.html
baaarliin escribió:Dejad a las chicas en paz, en serio, no seáis putos pesados. Mejor morir solo que ser un jodido plasta.

Trasgus.
Mensajes: 29195
Registrado: 15 Nov 2005, 20:56

Re: Ayuda programacion Python

por Trasgus. » 24 May 2018, 01:31

matlab me ha tocado algo, pero lo mismo que python, a un nivel basico de universidad. Incluso alguna vez he tenido clase de matlab despues de python y me montado unos pifiostes que ni pa que, porque solo la tonteria de que la posicion 0 no existen ya es un problema para cambiar el chip de un lenguaje a otro.

Eso si, me guardo la tabla de equivalencias

Trasgus.
Mensajes: 29195
Registrado: 15 Nov 2005, 20:56

Re: Ayuda programacion Python

por Trasgus. » 24 May 2018, 01:56

Por cierto, tengo entendido que se demandan mucho los programadores de Fortran, que no hay muchos y por lo que comentaron, y que la mayoria de centrales electricas de España estan programadas en ese lenguaje

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados

Fecha actual 26 Abr 2024, 02:36