我得到了如下所示的ValueError。
ValueError:矩阵未针对复制错误进行对齐
它被追溯到以下行(我没有编写此代码,我正在尝试使用它):
x1[:] = _dotproduct(x1, u)
点积就像numpy dot积,它工作精细,printing _dotproduct(x1, u)
给出一个有效的答案。 x1[:]
无效。
[:]
是什么意思?我从未见过这个。
另外如何解决对齐错误?
修改
我现在已将错误追溯到x1[:]
,因此我可以执行以下操作来代替:
hh=len(x1)
x1[0:hh]=_dotproduct(x1, u)
?
答案 0 :(得分:0)
在这种情况下,由于它位于=
符号的左侧,因此它是一个切片分配。对象x1
保持相同的对象,但其所有内容都替换为右侧的序列。如果没有[:]
,x1
将被分配给完全不同的对象。
使用切片分配意味着如果程序中有对同一变量的其他引用,则所有这些都将看到新内容。例如,函数的调用者传入容器,函数替换其内容。没有切片分配,这是不可能的。