【问题标题】:ValueError: matrices are not aligned for copy error and x[:]ValueError:由于复制错误和 x[:],矩阵未对齐
【发布时间】:2014-10-11 22:27:18
【问题描述】:

我得到了如下所示的 ValueError。

ValueError:由于复制错误,矩阵未对齐

追踪到下面一行(这段代码不是我写的,我在尝试使用):

x1[:] =  _dotproduct(x1, u)

点积就像 numpy 点积,它工作得很好,printing _dotproduct(x1, u) 给出了一个有效的答案。是 x1[:] 不工作。

[:] 是什么意思?我从来没有见过。

还有对齐错误怎么解决?

编辑:
我现在已将错误追踪到x1[:],因此我可以执行以下操作:

hh=len(x1)

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

【问题讨论】:

标签: python arrays numpy dot-product


【解决方案1】:

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

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

【讨论】:

  • 谢谢,但是左侧 x1[:] 会导致对齐错误。正如我在评论中所指出的,这提供了一个线索,但不是一个解决方案。 starship.python.net/pipermail/mmtk/2008/001447.html
  • 抱歉,我以为您的实际问题是“[:] 是什么意思?”
  • 对不起,我不擅长解释事情,英语不是我的强项。非常抱歉造成混乱。这是一个两部分的问题,现在我对其进行编辑。
猜你喜欢
  • 2012-11-01
  • 2014-03-22
  • 1970-01-01
  • 2017-01-12
  • 2012-02-03
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
相关资源
最近更新 更多