В numpy manual о функции reshape() говорится:
>>> a = np.zeros((10, 2))
# A transpose make the array non-contiguous
>>> b = a.T
# Taking a view makes it possible to modify the shape without modifying the
# initial object.
>>> c = b.view()
>>> c.shape = (20)
AttributeError: incompatible shape for a non-contiguous array
Мои вопросы:
- Что такое непрерывные и несмежные массивы? Это похоже на смежный блок памяти в C, например Что такое смежный блок памяти?
- Есть ли разница в производительности между этими двумя? Когда мы должны использовать один или другой?
- Почему transpose делает массив несмежным?
- Почему
c.shape = (20)
выдает сообщение об ошибкеincompatible shape for a non-contiguous array
?
Спасибо за ваш ответ!