我在尝试用新行替换numpy二维数组中的行时遇到了一个问题。你知道吗
我正在尝试编写一个函数来获取n
乘m
矩阵(m长度向量的n个样本)并返回一个正交基集。对于第一步,我计算第一行的长度,然后除以该值(规范化第一行)。当我尝试将规范化行赋回到原始矩阵时,遇到了一个错误:
import numpy.linalg as la
def gauss_jordan(z):
print(z[0])
print(la.norm(z[0]))
print(z[0] / la.norm(z[0])))
print((z[0] / la.norm(z[0])).shape)
z[0, :] = z[0, :] / la.norm(z[0])
print(z)
结果是:
[ 1 2 -2]
3.0
[ 0.33333333 0.66666667 -0.66666667]
(3,)
[[ 0 0 0]
[-1 3 1]
[-2 1 3]
[ 1 -2 5]]
零行从哪里来?计算出的数值都是正确的,但我不知道我的作业有什么问题。我也试过z[0,:] = z[0] / la.norm(z[0])
。你知道吗
在我看来,它是取整除法而不是普通除法。 如果你试着
另外,您使用的是什么版本的numpy和python?有可能是Python2.X吗?你知道吗
相关问题 更多 >
编程相关推荐