Numpy, как преобразовать вектор в многоколоночный массив

#python #numpy

#python #numpy

Вопрос:

Мне интересно, как использовать np.reshape для преобразования длинного вектора в массив из n столбцов без указания номеров строк.

Обычно я могу узнать номер строки по len(a)//n :

 a = np.arange(0, 10)
n = 2
b = a.reshape(len(a)//n,n)
  

Если есть более прямой способ без использования len(a)//n ?

Ответ №1:

Вы можете использовать -1 для одного измерения, numpy определит, каким должно быть это число:

 a = np.arange(0, 10)
n = 2
b = a.reshape(-1, n)
  

Документ довольно четко описывает эту функцию:https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html

Одно измерение формы может быть равно -1. В этом случае значение выводится из длины массива и оставшихся размеров.