numpy的矩阵类如何工作?我知道将来可能会删除它,所以我试图了解它是如何工作的,因此我可以对ndarrrays进行同样的操作。
>>> x=np.matrix([[1,1,1],[2,2,2],[3,3,3]])
>>> x[:,0] + x[0,:]
matrix([[2, 2, 2],
[3, 3, 3],
[4, 4, 4]])
似乎每一行都添加了一行。
>>> x=np.matrix([[1,2,3],[1,2,3],[1,2,3]])
>>> x[0,:] + x[:,0]
matrix([[2, 3, 4],
[2, 3, 4],
[2, 3, 4]])
现在似乎每一列都添加了一列。身份的作用甚至更奇怪,
>>> x=np.matrix([[1,0,0],[0,1,0],[0,0,1]])
>>> x[0,:] + x[:,0]
matrix([[2, 1, 1],
[1, 0, 0],
[1, 0, 0]])
编辑: 看来,如果采用(N,1)形状矩阵并将其添加到(N,1)形状矩阵中,则其中一个将被复制以形成(N,N)矩阵,而另一个将被添加到每一行或此新矩阵的列。限于适当大小的向量似乎很方便。 很好的用例是networkx对Floyd-Warshal的实现。
使用标准的numpy ndarrays是否有相当方便的单线?