【问题标题】:objects not aligned error对象未对齐错误
【发布时间】:2012-07-25 23:55:34
【问题描述】:

我正在使用 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 个项目。都是花车

我该如何纠正这个问题?

感谢您的建议

【问题讨论】:

  • 您能否为masterAverageList 提供一个产生问题的简短示例。另外,它在哪一行引发了异常,异常说明了什么?
  • 您的意思是示例中的内容。主平均列表包含 1.23697805 到 1.0076944343 之间的浮点数,其他一些随机数是 1.211134352、1.023456895、1.099897254。异常看起来像下面的行。说 y_true = np.dot(X, beta)。 ValueError:对象未对齐

标签: arrays numpy python-2.7


【解决方案1】:

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

>>> 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,)

我不确定要推荐什么,因为我不知道您对这些数组之间的点积有何期望。

【讨论】:

  • 在浏览了建议的材料后,我已经解决了我的问题,非常感谢您朝着正确的方向推进
  • 你会不会碰巧有一些关于操作不广播的链接和形状(2)(50)。经过一些阅读,我对如何修复它没有太多了解。在其最后一行代码上方的同一代码中。而以前是现在。 y_true = ((X, beta))
  • @MysterMyster:对不起,我不明白你在问什么。如果您对广播还有其他问题,您应该创建一个新问题。
猜你喜欢
  • 1970-01-01
  • 2015-10-10
  • 2017-01-12
  • 2010-11-14
  • 2014-09-04
  • 2012-08-31
  • 2014-11-10
  • 1970-01-01
  • 2012-02-03
相关资源
最近更新 更多