So, my example was indeed wrong. And indeed they mean the same thing. Sorry for that, I must be tired.
Defining the model like you did it works… (len(df.columns) is just len(x)+1 and then I use that beta[0].)
The interesting thing is that writing in this vector form takes 8 times more to train it, and they yield the same result. Please see the images below:

