ValueError: матрицы не выровнены для ошибки копирования и x

Я получил значение ValueError, как показано ниже.

ValueError: матрицы не выровнены для ошибки копирования

Это было прослежено до следующей строки (я не писал этот код, я пытаюсь его использовать):

x1[:] = _dotproduct(x1, u) 

Точечный продукт похож на numpy dot product, он работает FINE, printing _dotproduct(x1, u) дает правильный ответ. Это x1[:] который не работает.

Что означает [:] ? Я этого никогда не видел.

Также как я могу решить ошибку выравнивания?

Редактировать:
Я теперь проследил ошибку до x1[:] , поэтому вместо этого могу сделать следующее:

 hh=len(x1) 

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

One Solution collect form web for “ValueError: матрицы не выровнены для ошибки копирования и x”

В этом случае, поскольку он находится в левой части знака = , это назначение среза. Объект x1 остается одним и тем же объектом, но все его содержимое заменяется последовательностью справа. Без [:] x1 будет назначаться совершенно другому объекту.

Использование назначения среза означает, что если в вашей программе есть другие ссылки на одну и ту же переменную, все они будут видеть новое содержимое. Например, вызывающий объект переходит в контейнер, и функция заменяет его содержимое. Это было бы невозможно без назначения среза.

  • cv2.imdecode всегда возвращает None
  • Несколько штук в numpy.piecewise
  • Оценка хроматической аберрации в питоне
  • Есть поддержка разреженных матриц в Python?
  • как установить numpy и scipy на OS X?
  • C массив против массива NumPy
  • Нарезка массива numpy вдоль динамически заданной оси
  • матричная ковариационная матрица
  • Python - лучший язык программирования в мире.