Вы хотите превратить кадр данных в массив 1D. Прежде всего позвольте мне создать фрейм данных
import pandas
d = pandas.DataFrame([[1,2],[3,4],[5,6]],columns=['x1','y1'])
Я думаю, что следующий делает то, что вы хотите:
import numpy
x1 = numpy.array(d['x1'])
y1 = numpy.array(d['y1'])
numpy.polyfit(x1,y1,1)
Я думаю, что проблема, которую вы испытываете, что массивы вы создаете имеют дополнительное измерение. Например, массивы a
и b
ниже «выглядят» так же, как и x1
y1
,
a = numpy.array([[1,3,5]])
b = numpy.array([[2,4,6]])
, но из-за двойного кронштейна ([[...]]
), они на самом деле являются двумерными. Я могу уменьшить размер, выбрав только 0-й столбец:
x1 = a[0,:]
y1 = b[0,:]
Тогда полифит будет работать. EDIT: если вы посмотрите на форму массивов (например, x1.shape
), вы сможете узнать, есть ли у вас дополнительные размеры.
Я думаю, нам нужна дополнительная информация о dataframe. Как вы создаете/получаете x1 и y1? Можете ли вы изменить свой вопрос, чтобы предоставить эту информацию? – amd
Я не могу воспроизвести вашу ошибку. Что такое x1.shape? Из какого модуля возникает frame_query? – amd
Что является источником 'x1',' y1'? Упоминание о кадре данных предполагает 'pandas', но у вас нет тега' pandas' – hpaulj