Pedro Concejero Cerezo
2015-Apr-23 15:51 UTC
[R-es] Usar una matriz sparse desde python a R
Hola erreros
Estoy rizando el rizo con esto de las matrices sparse y he encontrado la forma
de hacerlo en python, que va rapidísimo. Por tanto tengo una matriz sparse en un
objeto python con esta info:
<138493x26744 sparse matrix of type '<type 'numpy.int64'>
Quiero hacer lo mismo con R pero me he topado con la lentitud de los bucles para
rellenar la sparse (también por mi supina ignorancia de los apply y de su
versión paralela mcmapply; o la que sea) y tengo prisa. Me pregunto si es
posible pasar más o menos directamente de python a R (nada de pasar a texto el
objeto, porque eso me lleva al mismo punto de llenar la sparse en R).
He probado rPython (gracias Carlos Gil por esta librería!) pero suelta este
error
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <138493x26744 sparse matrix of type '<type
'numpy.int64'>'
with 19761138 stored elements in LInked List format> is not JSON
serializable
¿Hay alguna otra posibilidad?
Gracias!
--
Pedro Concejero
BI & Big Data - Internal Exploitation - Telefónica
I+D<http://www.tid.es>
E-mail: pedro.concejerocerezo en telefonica.com<mailto:pedro.concejerocerezo
en telefonica.com>
skype: pedro.concejero
twitter @ConcejeroPedro<https://twitter.com/ConcejeroPedro>
linkedin pedroconcejero<http://www.linkedin.com/in/pedroconcejero/es>
Entusiasta R, me encontraréis aquí gRupo R madRid
<http://madrid.r-es.org/>
________________________________
Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede
contener información privilegiada o confidencial y es para uso exclusivo de la
persona o entidad de destino. Si no es usted. el destinatario indicado, queda
notificado de que la lectura, utilización, divulgación y/o copia sin
autorización puede estar prohibida en virtud de la legislación vigente. Si ha
recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente
por esta misma vía y proceda a su destrucción.
The information contained in this transmission is privileged and confidential
information intended only for the use of the individual or entity named above.
If the reader of this message is not the intended recipient, you are hereby
notified that any dissemination, distribution or copying of this communication
is strictly prohibited. If you have received this transmission in error, do not
read it. Please immediately reply to the sender that you have received this
communication in error and then delete it.
Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode
conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa
ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica
notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização
pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem
por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e
proceda a sua destruição
[[alternative HTML version deleted]]
javier.ruben.marcuzzi en gmail.com
2015-Apr-23 15:55 UTC
[R-es] Usar una matriz sparse desde python a R
Estimado Pedro Concejero Cerezo
¿Qué usa de R para sparse matrix? Me llama la atención que funcione lento, se me
ocurre en un error al escribir su código R y no de R en si mismo, aunque puedo
estar muy errado.
Javier Rubén Marcuzzi
Enviado desde Correo de Windows
De: pedro.concejerocerezo en telefonica.com
Enviado el: ?jueves?, ?23? de ?abril? de ?2015 ?12?:?51? ?p.m.
Para: R-help-es en r-project.org
Hola erreros
Estoy rizando el rizo con esto de las matrices sparse y he encontrado la forma
de hacerlo en python, que va rapidísimo. Por tanto tengo una matriz sparse en un
objeto python con esta info:
<138493x26744 sparse matrix of type '<type 'numpy.int64'>
Quiero hacer lo mismo con R pero me he topado con la lentitud de los bucles para
rellenar la sparse (también por mi supina ignorancia de los apply y de su
versión paralela mcmapply; o la que sea) y tengo prisa. Me pregunto si es
posible pasar más o menos directamente de python a R (nada de pasar a texto el
objeto, porque eso me lleva al mismo punto de llenar la sparse en R).
He probado rPython (gracias Carlos Gil por esta librería!) pero suelta este
error
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <138493x26744 sparse matrix of type '<type
'numpy.int64'>'
with 19761138 stored elements in LInked List format> is not JSON
serializable
¿Hay alguna otra posibilidad?
Gracias!
--
Pedro Concejero
BI & Big Data - Internal Exploitation - Telefónica
I+D<http://www.tid.es>
E-mail: pedro.concejerocerezo en telefonica.com<mailto:pedro.concejerocerezo
en telefonica.com>
skype: pedro.concejero
twitter @ConcejeroPedro<https://twitter.com/ConcejeroPedro>
linkedin pedroconcejero<http://www.linkedin.com/in/pedroconcejero/es>
Entusiasta R, me encontraréis aquí gRupo R madRid
<http://madrid.r-es.org/>
________________________________
Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede
contener información privilegiada o confidencial y es para uso exclusivo de la
persona o entidad de destino. Si no es usted. el destinatario indicado, queda
notificado de que la lectura, utilización, divulgación y/o copia sin
autorización puede estar prohibida en virtud de la legislación vigente. Si ha
recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente
por esta misma vía y proceda a su destrucción.
The information contained in this transmission is privileged and confidential
information intended only for the use of the individual or entity named above.
If the reader of this message is not the intended recipient, you are hereby
notified that any dissemination, distribution or copying of this communication
is strictly prohibited. If you have received this transmission in error, do not
read it. Please immediately reply to the sender that you have received this
communication in error and then delete it.
Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode
conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa
ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica
notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização
pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem
por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e
proceda a sua destruição
[[alternative HTML version deleted]]
_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2015-Apr-23 16:00 UTC
[R-es] Usar una matriz sparse desde python a R
Hola, ¿qué tal? Puedes probar a exportar tu objeto "sparse" en Python a alguno de los formatos que acepta el paquete Matrix de R: https://stat.ethz.ch/R-manual/R-devel/library/Matrix/html/externalFormats.html Puedes exportar desde Python como dice en https://docs.scipy.org/doc/scipy/reference/io.html y luego leer el fichero desde R como en el primer enlace. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 23 de abril de 2015, 17:51, Pedro Concejero Cerezo <pedro.concejerocerezo en telefonica.com> escribió:> Hola erreros > Estoy rizando el rizo con esto de las matrices sparse y he encontrado la forma de hacerlo en python, que va rapidísimo. Por tanto tengo una matriz sparse en un objeto python con esta info: > <138493x26744 sparse matrix of type '<type 'numpy.int64'> > > Quiero hacer lo mismo con R pero me he topado con la lentitud de los bucles para rellenar la sparse (también por mi supina ignorancia de los apply y de su versión paralela mcmapply; o la que sea) y tengo prisa. Me pregunto si es posible pasar más o menos directamente de python a R (nada de pasar a texto el objeto, porque eso me lleva al mismo punto de llenar la sparse en R). > > He probado rPython (gracias Carlos Gil por esta librería!) pero suelta este error > raise TypeError(repr(o) + " is not JSON serializable") > TypeError: <138493x26744 sparse matrix of type '<type 'numpy.int64'>' > with 19761138 stored elements in LInked List format> is not JSON serializable > > ¿Hay alguna otra posibilidad? > Gracias! > -- > Pedro Concejero > BI & Big Data - Internal Exploitation - Telefónica I+D<http://www.tid.es> > E-mail: pedro.concejerocerezo en telefonica.com<mailto:pedro.concejerocerezo en telefonica.com> > skype: pedro.concejero > twitter @ConcejeroPedro<https://twitter.com/ConcejeroPedro> > linkedin pedroconcejero<http://www.linkedin.com/in/pedroconcejero/es> > Entusiasta R, me encontraréis aquí gRupo R madRid <http://madrid.r-es.org/> > > ________________________________ > > Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede contener información privilegiada o confidencial y es para uso exclusivo de la persona o entidad de destino. Si no es usted. el destinatario indicado, queda notificado de que la lectura, utilización, divulgación y/o copia sin autorización puede estar prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción. > > The information contained in this transmission is privileged and confidential information intended only for the use of the individual or entity named above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this transmission in error, do not read it. Please immediately reply to the sender that you have received this communication in error and then delete it. > > Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e proceda a sua destruição > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es
Pedro Concejero Cerezo
2015-Apr-24 14:14 UTC
[R-es] Usar una matriz sparse desde python a R
Carlos, muchísimas gracias! Facilísimo, lo pongo aquí para referencia
mía y de otros por si es de interés.
- en python
import scipy.io
scipy.io.mmwrite("v" ,
V,
comment='',
field = "integer")
- y luego en R
v <- readMM("v.mtx" ) #scipy parece añadirle autom. extensión .mtx
y ya está!
(MM es por MatrixMarket, es el formato que me ha parecido más fácil)
Buen fin de semana!
Pedro
El 23/04/2015 a las 18:00, Carlos J. Gil Bellosta
escribió:> Hola, ¿qué tal?
>
> Puedes probar a exportar tu objeto "sparse" en Python a alguno de
los
> formatos que acepta el paquete Matrix de R:
>
>
https://stat.ethz.ch/R-manual/R-devel/library/Matrix/html/externalFormats.html
>
> Puedes exportar desde Python como dice en
>
> https://docs.scipy.org/doc/scipy/reference/io.html
>
> y luego leer el fichero desde R como en el primer enlace.
>
> Un saludo,
>
> Carlos J. Gil Bellosta
> http://www.datanalytics.com
________________________________
Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede
contener información privilegiada o confidencial y es para uso exclusivo de la
persona o entidad de destino. Si no es usted. el destinatario indicado, queda
notificado de que la lectura, utilización, divulgación y/o copia sin
autorización puede estar prohibida en virtud de la legislación vigente. Si ha
recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente
por esta misma vía y proceda a su destrucción.
The information contained in this transmission is privileged and confidential
information intended only for the use of the individual or entity named above.
If the reader of this message is not the intended recipient, you are hereby
notified that any dissemination, distribution or copying of this communication
is strictly prohibited. If you have received this transmission in error, do not
read it. Please immediately reply to the sender that you have received this
communication in error and then delete it.
Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode
conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa
ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica
notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização
pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem
por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e
proceda a sua destruição