假设我的输入数据是array = [values, weights]
arr1 = [np.array([1,2,3,4]), np.array([1,1,1,1])]
arr2 = [np.array([2,4,6,8]), np.array([2,2,2,2])]
我想要构建的是values
和weights
有序项对,然后计算平均值(我希望我下面的尝试可以清楚地看到这一点)
这就是我想到的,但感觉有一种更干净的方法来实现结果:
listArrs = [arr1, arr2]
vals = np.array([c[0] for c in listArrs]).T
weights = np.array([c[1] for c in listArrs]).T
[np.average(v,weights=w) for v,w in zip(vals, weights)]
Out: [1.6666666666666667, 3.3333333333333335, 5.0, 6.666666666666667]
不要使用列表理解迭代器和zip,只需执行以下操作-
Numpy实现了出色的矢量化和广播,因此在处理矩阵或张量时很少需要迭代器
这是一个没有任何迭代器的解决方案
如你所建议的一艘班轮-
相关问题 更多 >
编程相关推荐