2024-05-23 17:03:09 发布
网友
给两个星期
old_set = [[0, 1], [4, 5]] new_set = [[2, 7], [0, 1]]
我希望得到两个数组之间各自值的平均值,这样数据最终会类似于:
end_data = [[1, 4], [2, 3]]
基本上它会应用一些
for i in len(old_set): end_data[i] = (old_set[i]+new_set[i])/2
但我不确定该用什么语法。。谢谢你的帮助!
可以创建包含要平均的二维数组的三维数组,然后使用np.mean或np.average沿axis=0平均(后者允许加权平均):
np.mean
np.average
axis=0
np.mean( np.array([ old_set, new_set ]), axis=0 )
此平均方案可应用于任何(n)维数组,因为创建的(n+1)维数组将始终包含沿其axis=0平均的原始数组。
(n)
(n+1)
>>> import numpy as np >>> old_set = [[0, 1], [4, 5]] >>> new_set = [[2, 7], [0, 1]] >>> (np.array(old_set) + np.array(new_set)) / 2.0 array([[1., 4.], [2., 3.]])
numpy.average
也可以使用相同的语法^{}:
import numpy as np a = np.array([np.arange(0,9).reshape(3,3),np.arange(9,18).reshape(3,3)]) averaged_array = np.average(a,axis=0)
numpy.average与^{}相比的优点是还可以将weights参数用作相同形状的数组:
weighta = np.empty((3,3)) weightb = np.empty((3,3)) weights = np.array([weighta.fill(0.5),weightb.fill(0.8) ]) np.average(a,axis=0,weights=weights)
如果使用屏蔽数组,请考虑也使用^{},因为^{} don't deal with them。
可以创建包含要平均的二维数组的三维数组,然后使用
np.mean
或np.average
沿axis=0
平均(后者允许加权平均):此平均方案可应用于任何
(n)
维数组,因为创建的(n+1)
维数组将始终包含沿其axis=0
平均的原始数组。使用
numpy.average
也可以使用相同的语法^{} :
numpy.average与^{} 相比的优点是还可以将weights参数用作相同形状的数组:
如果使用屏蔽数组,请考虑也使用^{} ,因为^{} don't deal with them 。
相关问题 更多 >
编程相关推荐