我创建了可点击的多边形并将其附加到地图上.我为地图设置了'crosshair'dragggableCursor.对多边形也有相同的光标会很好.但是,当我将鼠标悬停在多边形上时,光标会变为手形.
保持光标相同的唯一方法是为多边形设置clickable:false,但是驱动多边形的所有事件侦听器都不起作用.
我花了一半时间试图在网上找到解决方案,但失败了.有没有人拥有这样的知识宝石?
我在Python/Scipy中处理相当大的矩阵.我需要从大矩阵(加载到coo_matrix)中提取行并将它们用作对角元素.目前我以下列方式做到这一点:
import numpy as np
from scipy import sparse
def computation(A):
for i in range(A.shape[0]):
diag_elems = np.array(A[i,:].todense())
ith_diag = sparse.spdiags(diag_elems,0,A.shape[1],A.shape[1], format = "csc")
#...
#create some random matrix
A = (sparse.rand(1000,100000,0.02,format="csc")*5).astype(np.ubyte)
#get timings
profile.run('computation(A)')
Run Code Online (Sandbox Code Playgroud)
我从profile输出中看到的是,大部分时间是get_csr_submatrix在提取时被函数消耗的diag_elems.这让我觉得我使用了初始数据的低效稀疏表示或从稀疏矩阵中提取行的错误方法.您能否建议一种更好的方法从稀疏矩阵中提取行并以对角线形式表示?
编辑
以下变体从行提取中消除了瓶颈(注意,简单的更改'csc'为csr不够,A[i,:]必须同时替换A.getrow(i)).然而,主要问题是如何省略materialization(.todense())并从行的稀疏表示创建对角矩阵.
import numpy as np
from scipy import sparse
def computation(A):
for i in range(A.shape[0]):
diag_elems = np.array(A.getrow(i).todense())
ith_diag = sparse.spdiags(diag_elems,0,A.shape[1],A.shape[1], format = "csc")
#...
#create some …Run Code Online (Sandbox Code Playgroud)