【发布时间】:2013-02-08 07:58:18
【问题描述】:
作为我开始在 python 中使用数字代码之前的一个小练习,我正在尝试制作一个 LDLT 算法。只是为了“弄湿脚”。
但是我似乎对 numpy 数组缺乏基本的了解。请参阅以下示例:
def ldlt(Matrix):
import numpy
(NRow, NCol) = Matrix.shape
for col in range(NCol):
Tmp = 1/Matrix[col,col]
for D in range(col+1, NCol):
Matrix[col,D] = Matrix[D,col]*Tmp
if __name__ == '__main__':
import numpy
A = numpy.array([[2,-1,0],[-1,2,-1],[0,-1,2]])
ldlt(A)
该示例不是我正在处理的完整代码。但是,尝试运行它,并在 Matrix[col,D] = ... 处设置断点 ...
我对第一次评估的期望是将第 0 行第 1 列(起始值 -1)设置为等于 = -1*(1/2) = -0.5。
但是,在运行代码时,它似乎被设置为 0。为什么? 一定有一些基本的东西我还没有真正理解?
提前感谢大家帮助我。
编辑 1:
Python 版本:3.3 Tmp.:变为 0.5(由我的调试器报告)。
【问题讨论】:
标签: python arrays numpy variable-assignment operation