Python ValueError:复制错误和x[:]的矩阵未对齐
我得到了如下所示的值错误 ValueError:由于复制错误,矩阵未对齐 可追溯到以下行:我没有编写此代码,我正在尝试使用它:Python ValueError:复制错误和x[:]的矩阵未对齐,python,arrays,numpy,dot-product,Python,Arrays,Numpy,Dot Product,我得到了如下所示的值错误 ValueError:由于复制错误,矩阵未对齐 可追溯到以下行:我没有编写此代码,我正在尝试使用它: x1[:] = _dotproduct(x1, u) 点积就像numpy点积,它工作得很好,打印_dotproductx1,u给出有效答案。x1[:]不起作用 [:]是什么意思?我从来没见过 还有,如何解决对齐错误 编辑: 现在,我已将错误跟踪到x1[:],因此可以执行以下操作,而不是执行此操作: hh=len(x1) x1[0:hh]=\u dotproduct
x1[:] = _dotproduct(x1, u)
点积就像numpy点积,它工作得很好,打印_dotproductx1,u给出有效答案。x1[:]不起作用
[:]是什么意思?我从来没见过
还有,如何解决对齐错误
编辑:
现在,我已将错误跟踪到x1[:],因此可以执行以下操作,而不是执行此操作:
hh=len(x1)
x1[0:hh]=\u dotproductx1,u?在这种情况下,由于它位于=符号的左侧,因此它是一个片分配。对象x1保持为同一对象,但其所有内容均替换为右侧的序列。如果没有[:],x1将被分配给一个完全不同的对象
使用切片赋值意味着,如果程序中存在对同一变量的其他引用,所有这些都将看到新内容。例如,函数的调用方传入一个容器,函数替换其内容。这在没有切片分配的情况下是不可能的。可能的[:]副本是列表的浅复制符号。谢谢你,我没有遇到它。为什么会有问题?我在网上浏览了一下:谢谢,但正是左侧x1[:]导致了对齐错误。正如我在评论中指出的,这提供了一个线索,但不是一个解决方案。对不起,我以为你真正的问题是[:]是什么意思?对不起,我解释东西很糟糕,英语不是我的强项。非常抱歉造成混乱。这是一个分为两部分的问题,现在我编辑它。