【发布时间】:2020-05-26 13:18:24
【问题描述】:
我正在寻找以下问题的答案:
我想创建一个存储所有截距和斜率的 numpy 数组。斜率是means 相对于years 的增加。我找到了多种计算截距/斜率的方法,但我真的错过了将它们放入新数组的链接(我是 Numpy 的新手,所以逻辑正在慢慢到达那里,但我现在被困了一天。 .)
所以.. 我有一个结构如下的数组:
x = np.array([(2000, 'A', '1',5), (2001, 'A', '1', 10),
(2003, 'A', '1',15), (2004, 'A', '1', 20),
(2000, 'A', '2',1), (2001, 'A', '2', 2),
(2002, 'A', '2', 3), (2003, 'A', '2', 4)],
dtype=[('year', 'i4'), ('group1', 'U2'), ('group2', 'U2'), ('means', 'i2')])
我想最终得到一个这样的数组:
>desired_array
array([('A', '1', 5, 5),
('A', '2', 1, 1)],
dtype=[('group1', '<U2'), ('group2', '<U2'), ('intercept', '<i2'), ('slope', '<i2')])
我已经到了这一点:
ans, indices = np.unique(x[['group1', 'group2']], return_inverse=True)
desired_array = np.empty(2, dtype=[('group1', 'U2'), ('group2', 'U2'), ('intercept', '<f8'),
('slope', '<f8')])
desired_array['group1'] = ans['group1']
desired_array['group2'] = ans['group2']
x = x[x['year'] == 2000]
desired_array['intercept'] = x['means']
这有点粗糙,我仍然可以改进,但我遇到的主要问题是如何将每条回归线的斜率添加到数组中。
如果有人可以帮助我,那就太好了:)
【问题讨论】:
-
最后是什么desired_array['a']?正如我所见,它没有任何“a”字段
-
啊,是的,我的错,我编辑成了“拦截”。另请注意:我现在需要调整截距计算,这只是一个简单的示例,主要问题是添加斜率
标签: python arrays numpy linear-regression