0

我正在使用 python 2.7 并试图让这段代码工作并不断收到错误

nsample = 50
sig = 0.25
x1 = np.linspace(0,20, nsample)
X = np.c_[x1, np.sin(x1), (x1-5)**2, np.ones(nsample)]
beta = masterAverageList
y_true = np.dot(X, beta)
y = y_true + sig * np.random.normal(size=nsample)

但是我不断收到对象未对齐错误我认为这与主平均列表是一个列表有关吗?

如果重要的话,我忘了提到主数组列表中有 196 个项目。他们都是花车

我该如何纠正?

感谢您的任何建议

4

1 回答 1

2

您应该在此处此处阅读 numpy 广播。您正在尝试在具有不兼容形状的两个数组之间进行点积。

>>> import numpy as np
>>> x1 = np.linspace(0,20,50)
>>> X = np.c_[x1,np.sin(x1),(x1-5)**2,np.ones(50)]
>>> beta = np.ones(196)
>>> y_true = np.dot(X,beta)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: matrices are not aligned
>>> X.shape
(50, 4)
>>> beta.shape
(196,)

我不确定要推荐什么,因为我不知道您通过在这些数组之间取点积来期待什么。

于 2012-07-28T00:51:03.623 回答