我正在尝试将两个 numpy 数组的特定元素加在一起。
例如,考虑这两个数组:
f1 = np.array([
[[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]],
[[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]],
[[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]]
])
f2 = np.array([
[[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]],
[[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]],
[[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]]
])
我想创建一个如下所示的新数组:
[[0.5, 0.5, 0.5],
[0.5, 0.5, 0.5],
[0.5, 0.5, 0.5]]
对于 f1 和 f2 中的每个包含三个值的数组,我想要执行的操作类似于
(f1[r][c][0]+f2[r][c][0])/2
。
我知道
np.add(f1,f2)/2
会产生接近我正在寻找的结果,除了它会对数组的每个元素执行添加和缩放操作,而不是仅对每个长度为 3 的子数组中的第一个元素执行添加和缩放操作。最好的方法是将每个原始数组分解为三个单独的数组,从而允许我使用np.add(f1,f2)/2
?
如果这是重复的,我深表歉意,我似乎找不到任何有关执行此类操作的信息。
您可以使用:
(f1[...,0]+f2[...,0])/2
输出:
array([[0.5, 0.5, 0.5],
[0.5, 0.5, 0.5],
[0.5, 0.5, 0.5]])