Converting python objects for rpy2

前端 未结 3 1685
野性不改
野性不改 2020-11-29 01:39

The following code is supposed to create a heatmap in rpy2

import numpy as np
from rpy2.robjects import r
data = np.random.random((10,10))
r.heatmap(data)            


        
相关标签:
3条回答
  • 2020-11-29 02:06

    For me (2.2.1) the following also worked (as documented on http://rpy.sourceforge.net/rpy2/doc-2.2/html/numpy.html):

    import rpy2.robjects as ro
    from rpy2.robjects.numpy2ri import numpy2ri
    ro.conversion.py2ri = numpy2ri
    
    0 讨论(0)
  • 2020-11-29 02:20

    For rpy2 2.2.4 I had to add:

    import rpy2.robjects.numpy2ri
    rpy2.robjects.numpy2ri.activate()
    
    0 讨论(0)
  • 2020-11-29 02:21

    You need to add

    import rpy2.robjects.numpy2ri
    rpy2.robjects.numpy2ri.activate()
    

    See more in rpy2 documentation numpy section (here for the older 2.x version)

    Prior to 2.2.x the import alone was sufficient.

    That import alone is sufficient to switch an automatic conversion of numpy objects into rpy2 objects.

    Why make this an optional import, while it could have been included in the function py2ri() (as done in the original patch submitted for that function) ?

    Although both are valid and reasonable options, the design decision was taken in order to decouple rpy2 from numpy the most, and do not assume that having numpy installed automatically meant that a programmer wanted to use it.

    0 讨论(0)
提交回复
热议问题