【问题标题】:Computing a matrix in numpy by function call通过函数调用在 numpy 中计算矩阵
【发布时间】:2020-11-04 15:31:49
【问题描述】:

我有一个函数可以将固定长度的特征向量n(1d numpy 数组)分配给一个对象:feature_vector(obj)

我还有一个函数可以计算 2 个对象的特征向量的点积(不需要点积的整个函数...我知道。但我认为它会比未来):

def kernel(obj1, obj2):
    return return np.dot(feature_vector(obj1), feature_vector(obj2))

现在我得到了这些对象的m 列表,并且想要计算相应内核的矩阵:

def computematrix(objlist):
    m = np.zeros((len(objlist), len(objlist)))
    for i in range(len(objlist)):
        for j in range(len(objlist)):
            m[i][j] = kernel(objlist[i], objlist[j])
    return m

有没有更高效的 /mory pythonic /more numpy 方式来做到这一点?

【问题讨论】:

    标签: python python-3.x numpy


    【解决方案1】:

    您可以在一行中完成所有这些操作:

    m = [[(kernel(objlist[i], objlist[j]) for j in range(len(objlist))] for i in range(len(objlist))]
    

    【讨论】: