Использование .reshape в python: reshape(1,-1)

1. Несколько распространенных вариантов использования функции изменения формы в numpy.

преобразовать (1,-1) в 1 строку:

reshape(2,-1) преобразуется в две строки:

изменить форму (-1,1) в 1 столбец:

преобразовать (-1,2) в два столбца

reshape(2,8) преобразуется в две строки и восемь столбцов

test = [[1,2,3],[2,3,4]]
test_x = np.reshape(test_x, (2, 1, 3)) # преобразовать 2D в 3D

2. Источником этого блога является ошибка, о которой сообщает fit в sklearn.

ошибка:

x = np.array([6, 8, 10, 14, 18])
y = np.array([7, 9, 13, 17.5, 18])
model.fit(x, y)

После запуска он показывает: ValueError: Ожидаемый 2D-массив, вместо этого получен 1D-массив,
вероятно, означает, что ожидается 2D-массив, но вход представляет собой 1D-массив.Измените
свои данные либо с помощью array.reshape(-1, 1), если ваши данные имеет одну функцию или array.reshape(1, -1), если он содержит один образец.

решать:

x= np.array([6, 8, 10, 14, 18]).reshape(-1, 1)
y = np.array([7, 9, 13, 17.5, 18]).reshape(-1, 1)
model.fit(x, y)

Это связано с тем, что в sklearn все данные должны быть двумерной матрицей, даже если это всего лишь одна строка или столбец (например, при прогнозировании использовались только данные одной выборки), поэтому вам нужно использовать .reshape( 1,-1) для преобразования, а значение и обычное использование reshape — это вышеприведенное содержание.

Guess you like

Origin blog.csdn.net/qq_44391957/article/details/120090486