现在有个关于m个对象,并且每个对象有n个属性的矩阵mxn(如下图)
现在要把这个矩阵转化成两两比较矩阵,也就是说依次选择两个对象进行属性比较(如下图)
,比较方式就是让两个对象属性值相减。得到新的矩阵。想询问相关问题需要调用哪些库,并请给出相关问题的代码
现在要把这个矩阵转化成两两比较矩阵,也就是说依次选择两个对象进行属性比较(如下图)
,比较方式就是让两个对象属性值相减。得到新的矩阵。想询问相关问题需要调用哪些库,并请给出相关问题的代码
用numpy,应该不难吧?简单写了一个demo,供题主参考。实话实话,这样的问题不值得悬赏50块钱。
>>> import numpy as np
>>> def func(dmat):
m, n = dmat.shape
result = np.array([])
for i in range(m-1):
result = np.append(result, dmat[0] - dmat[i+1:])
return result.reshape(-1, n)
>>> data = np.random.random((4,3))
>>> data
array([[0.36279939, 0.38509106, 0.49963333],
[0.0694777 , 0.69383702, 0.13091123],
[0.2055876 , 0.53550328, 0.6447773 ],
[0.49737748, 0.27863575, 0.1494784 ]])
>>> func(data)
array([[ 0.29332169, -0.30874596, 0.3687221 ],
[ 0.15721179, -0.15041222, -0.14514397],
[-0.13457809, 0.1064553 , 0.35015494],
[ 0.15721179, -0.15041222, -0.14514397],
[-0.13457809, 0.1064553 , 0.35015494],
[-0.13457809, 0.1064553 , 0.35015494]])