【发布时间】:2011-02-01 06:55:12
【问题描述】:
嗨,
我希望在 python 中启动一个对称矩阵并用零填充它。
目前,我已经启动了一个已知维度的数组,但这不适合作为距离矩阵的后续输入。
numpy 中是否有任何“简单”的方法来创建对称矩阵?
谢谢, D.
编辑
我应该澄清一下 - 创建“对称”矩阵很好。但是我只对生成下三角形感兴趣,即
ar = numpy.zeros((3, 3))
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
我想要:
array([[ 0],
[ 0, 0 ],
[ 0., 0., 0.]])
这可能吗?
【问题讨论】:
-
您能否详细说明
unsuitable for subsequent input into R as a distance matrix的含义。你还没有标记R,那么它是否相关?谢谢 -
抱歉 - 不,这并不重要。项目之间的距离(欧几里得、曼哈顿、余弦等)以成对方式计算,因此是对称输出。我正在计算自定义矩阵,因为 R 不能很好地处理我的数据。不过那是另一回事了。为混乱道歉!
-
@Darren:仍然不确定您在寻找什么。您是否可能建议您仅计算例如上三对角部分,而神奇地低三对角部分会反映这一点?即使是可行的,我也会期待性能惩罚。你愿意展示你拥有的任何代码吗?
-
我认为 EOL 对类似 Q 的回答是正确的 (stackoverflow.com/questions/2572916/…)
-
如果你想要一个快速距离矩阵计算,看看
scipy.spatial.pdistdocs.scipy.org/doc/scipy/reference/generated/…
标签: python matrix numpy symmetric