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 — это вышеприведенное содержание.