Python numpy中的对称矩阵?

Python numpy中的对称矩阵?,python,matrix,numpy,symmetric,Python,Matrix,Numpy,Symmetric,嗨 我希望在python中创建一个对称矩阵,并用零填充它 目前,我已经创建了一个已知维度的数组,但这不适合作为距离矩阵输入到R中 numpy中是否有创建对称矩阵的“简单”方法 谢谢, D 编辑 我应该澄清一下——创建“对称”矩阵很好。然而,我只对生成下三角形式感兴趣,即 ar = numpy.zeros((3, 3)) array([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]) 我想: array([[ 0

我希望在python中创建一个对称矩阵,并用零填充它

目前,我已经创建了一个已知维度的数组,但这不适合作为距离矩阵输入到R中

numpy中是否有创建对称矩阵的“简单”方法

谢谢, D

编辑

我应该澄清一下——创建“对称”矩阵很好。然而,我只对生成下三角形式感兴趣,即

ar = numpy.zeros((3, 3))

array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])
我想:

array([[ 0],
       [ 0, 0 ],
       [ 0.,  0.,  0.]])

这可能吗?

我认为尝试使用这种三角形阵列是不可行的

例如,这里是(平方)成对欧几里德距离的简单实现:

def pdista(X):
    """Squared pairwise distances between all columns of X."""
    B= np.dot(X.T, X)
    q= np.diag(B)[:, None]
    return q+ q.T- 2* B

就性能而言,很难击败它(在Python级别)。不使用这种方法的主要优点是什么?

您能详细说明一下您所说的
不适合作为距离矩阵输入R的意思吗。您没有标记
R
,因此它是否相关?谢谢-不,那不是真的相关。项目之间的距离(欧几里德、曼哈顿、余弦等)以成对方式计算,因此输出对称。我正在计算自定义矩阵,因为R不能很好地处理我的数据。但这是另一个故事。抱歉造成混乱@达伦:还是不确定你在找什么。你是不是建议你只计算上三对角部分,而下三对角部分神奇地反映了这一点?即使是可行的,我也会期望性能受到处罚。你想展示一下你的代码吗?我认为EOL对类似Q的回答是正确的()如果你想快速计算距离矩阵,请查看
scipy.spatial.pdist