我有一个多维的弹性数组,其中一个维度是“年龄组”(0-92岁),另一个维度是“收入组”(低/高收入)。
我想创建一个表,其中包含使用for循环的每个子组组合的平均弹性。
我的代码如下:
import numpy as np
elasticity = np.random.rand(2,92)
print(elasticity.shape)
income = ['i0','i1']
age_gr= [':18','18:']
table = {}
for i in range(len(age_gr)):
for j in range(len(income)):
key = age_gr[i]+"_"+income[j]
table[key] = np.mean(elasticity[age_gr[i],j])
print(table)
我的问题是“age_gr[i]”给了我一个错误“IndexError:只有整数,切片(:
),省略号(...
),numpy.newaxis(None
)和整数或布尔数组是有效的索引。实际上我有更多的年龄组,所以我不能手动完成。
我希望有这样的结果:
其中...表示子组的弹性的平均值。
编辑:年龄范围为0-92岁,而不是之前所述的(低于/高于18岁)。
1条答案
按热度按时间ktecyv1j1#
确切的预期输出尚不清楚,但可以肯定的是,您不能使用
':18'
字符串并期望它表现得像slice
(slice(None, 18)
)。你可以使用一个函数来转换:
输出: