Простое изменение формы массива numpy: ошибка: «общий размер нового массива должен быть неизменным»

Вот очень простая версия проблемы, с которой я столкнулся, чтобы преобразовать массив 40 * 1 в массив 20 * 2. Что здесь происходит не так?

import numpy as np
x=np.linspace(1,20,40)
#confirm length is 40
print(np.shape(x))
#reshape to 2*20
print(np.reshape(x,2,20))
#returns error: 'total size of new array  must be unchanged'

person HMReliable    schedule 22.11.2018    source источник
comment
дайте мне знать, если мой ответ поможет   -  person seralouk    schedule 23.11.2018
comment
Вы недостаточно внимательно читали документы   -  person Nils Werner    schedule 23.11.2018
comment
@seralouk да, это точно отвечает на мой вопрос. Благодарность!   -  person HMReliable    schedule 23.11.2018


Ответы (1)


Вы не используете функцию так, как должны ее использовать.

Просто используйте это:

np.reshape(x,(2,20))

Документация здесь

Полный код:

import numpy as np
x=np.linspace(1,20,40)
#confirm length is 40
print(np.shape(x))
print(np.reshape(x,(2,20)))
person seralouk    schedule 22.11.2018