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