繁体   English   中英

ValueError:矩阵未针对复制错误和x [:]对齐

[英]ValueError: matrices are not aligned for copy error and x[:]

我得到了ValueError如下。

ValueError:矩阵未针对复制错误进行对齐

它被追溯到以下行(我没有编写此代码,我正在尝试使用它):

x1[:] =  _dotproduct(x1, u)

点积类似于numpy点积,它可以很好地工作, printing _dotproduct(x1, u)给出有效答案。 x1[:]不起作用。

[:]是什么意思? 我从未见过。

另外,如何解决对齐错误?

编辑:
现在,我已将错误跟踪到x1[:] ,因此可以代替以下操作:

hh=len(x1)

x1[0:hh]=_dotproduct(x1, u)吗?

在这种情况下,由于它位于=符号的左侧,因此是切片分配。 对象x1仍然是同一对象,但是其所有内容都被右侧的序列替换。 如果没有[:] ,则x1将分配给完全不同的对象。

使用分片分配意味着,如果程序中存在对同一变量的其他引用,则所有这些引用都会看到新内容。 例如,函数的调用者传入一个容器,该函数替换其内容。 没有切片分配,这将是不可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM