Python 矢量化内核代码

Python 矢量化内核代码,python,numpy,Python,Numpy,有没有办法以矢量化的形式实现以下内容 def kfunc(x,y): return #some number def compute_K(X, kfunc): m, n = X.shape kernel = np.zeros((m, m)) for i, row in enumerate(X): for j, ele in enumerate(row): for k, ele_2 in enumerate(row):

有没有办法以矢量化的形式实现以下内容

def kfunc(x,y):
   return #some number
def compute_K(X, kfunc):
    m, n = X.shape
    kernel = np.zeros((m, m))
    for i, row in enumerate(X):
        for j, ele in enumerate(row):
            for k, ele_2 in enumerate(row):
                kernel[j, k] = kfunc(ele, ele_2)
    return kernel

基本上,上面采用了一个numpy矩阵和一些函数,并在矩阵X上计算核矩阵

kfunc的内容是确定这种函数是否可以矢量化以及如何矢量化的关键。它看起来像是为每一行覆盖
kernel
,这意味着可以执行
i=len(X)-1
row=X[-1]
并消除外环!您正在丢弃大部分
i
值的事实是可疑的。除此之外,我将着重于重写
kfunc
,这样它可以使用2个数组(
row
),而不是2个标量。kfunc的内容是确定这样一个函数是否可以矢量化以及如何矢量化的关键。它看起来像是为每一行覆盖
内核,这意味着可以执行
I=len(X)-1
row=X[-1]
并消除外环!您正在丢弃大部分
i
值的事实是可疑的。除此之外,我将重点重写
kfunc
,这样它就可以使用2个数组(
row
),而不是2个标量。