[英]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.