MemoryError when running Numpy Meshgrid

前端 未结 3 732
小蘑菇
小蘑菇 2020-12-15 13:51

I have 8823 data points with x,y coordinates. I\'m trying to follow the answer on how to get a scatter dataset to be represented as a heatmap but when I go

3条回答
  •  再見小時候
    2020-12-15 14:50

    in numpy 1.7.0 and newer meshgrid has the sparse keyword argument. A sparse meshgrid is setup so it broadcasts to a full meshgrid when used. This can save large amounts of memory e.g. when using the meshgrid to index arrays.

    In [2]: np.meshgrid(np.arange(10), np.arange(10), sparse=True)
    Out[2]: 
    [array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]), array([[0],
        [1],
        [2],
        [3],
        [4],
        [5],
        [6],
        [7],
        [8],
        [9]])]
    

    Another option is to use smaller integers that are still able to represent the range:

    np.meshgrid(np.arange(10).astype(np.int8), np.arange(10).astype(np.int8),
                sparse=True, copy=False)
    

    though as of numpy 1.9 using these smaller integers for indexing will be slower as they will internally be converted back to larger integers in small (np.setbufsize sized) chunks.

提交回复
热议问题