Критерий для предоставления новой формы заключается в том, что «новая форма должна быть совместима с исходной формой»
Numpy позволяет нам задать один из новых параметров формы как -1 (например: (2, -1) или (-1,3), но не (-1, -1)). Это просто означает, что это неизвестное измерение, и мы хотим, чтобы numpy понял это. И NumPy поймет это, посмотрев на «длину массива и оставшиеся размеры» и убедившись, что он удовлетворяет вышеуказанным критериям
Теперь посмотрим на пример.
z = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
z.shape
(3, 4)
Теперь пытаюсь изменить форму с (-1). Результат новой формы (12,) и совместим с оригинальной формой (3,4)
z.reshape(-1)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
Теперь пытаюсь изменить форму с (-1, 1). Мы предоставили столбец как 1, но строки как неизвестные. Таким образом, мы получаем результат новой формы как (12, 1). Снова совместим с исходной формой (3,4)
z.reshape(-1,1)
array([[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11],
[12]])
Вышеуказанное согласуется с numpy
советом / сообщением об ошибке для использования reshape(-1,1)
для одной функции; то есть один столбец
Изменить ваши данные, используя, array.reshape(-1, 1)
если ваши данные имеют одну функцию
Новая форма как (-1, 2). строка неизвестна, столбец 2. мы получаем результат новой формы как (6, 2)
z.reshape(-1, 2)
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[11, 12]])
Теперь пытаюсь сохранить столбец как неизвестный. Новая форма как (1, -1). то есть строка 1, столбец неизвестен. мы получаем результат новой формы как (1, 12)
z.reshape(1,-1)
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]])
Вышеуказанное согласуется с numpy
советом / сообщением об ошибке, чтобы использовать reshape(1,-1)
для одного образца; то есть один ряд
Изменить ваши данные, используя, array.reshape(1, -1)
если он содержит один образец
Новая форма (2, -1). Строка 2, столбец неизвестен. получаем результат новой формы как (2,6)
z.reshape(2, -1)
array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]])
Новая форма как (3, -1). Строка 3, столбец неизвестен. мы получаем результат новой формы как (3,4)
z.reshape(3, -1)
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
И, наконец, если мы попытаемся предоставить оба измерения как неизвестные, т.е. новую форму как (-1, -1). Это выдаст ошибку
z.reshape(-1, -1)
ValueError: can only specify one unknown dimension
reshape
чтобы поддерживать одинаковое количество элементов.