Python 使用numpy方法计算自定义核矩阵
我有一个形状为d X N的数据(每列都是特征向量) 我有以下用于计算内核矩阵的代码:Python 使用numpy方法计算自定义核矩阵,python,numpy,numpy-ndarray,array-broadcasting,numpy-einsum,Python,Numpy,Numpy Ndarray,Array Broadcasting,Numpy Einsum,我有一个形状为d X N的数据(每列都是特征向量) 我有以下用于计算内核矩阵的代码: def kernel(x1, x2): return x1.T @ x2 data = np.array([[1,2,3], [1,2,3], [1,2,3]]) result = [] for i in range(data.shape[1]): current_result = [] for j in range(data.shape[1]): x1 = data[:, i]
def kernel(x1, x2):
return x1.T @ x2
data = np.array([[1,2,3], [1,2,3], [1,2,3]])
result = []
for i in range(data.shape[1]):
current_result = []
for j in range(data.shape[1]):
x1 = data[:, i]
x2 = data[:, j]
current_result.append(kernel(x1, x2))
result.append(current_result)
np.array(result)
几周前我问了这个问题:
我得到了这个答案:
np.einsum('ji,jk->ik', a, a, optimize=True)
这是一个很好的答案,问题是它只适用于这个特定的内核。现在我需要使用一个不同的内核函数。
有没有办法只使用numpy函数来计算这些值?你说的“它只适用于这个特定的内核”是什么意思?你能确切地描述一下为什么/在哪些情况下?