将给定轴中的所有值替换为给定轴的最小值



我试图在python中实现这个等式。我最终得到了一段代码:

def unknown(a, axis=0, p=0):
if p >= 0 and p <=1:
if not isinstance(a, np.ndarray):
a = np.array(a, dtype=dtype)
size = a.shape[axis]
return (p/size)*(np.sum((a + (1 - p)), axis=axis, dtype=dtype))
else:
raise ValueError("parameter p should be in range 0,1")

给定代码跳过给定轴中最小值的乘积。我有一个想法,创建一个与"a"相同的新数组,其中包含乘以(1-p(的最小值,然后将此矩阵添加到"a"中。遗憾的是,我不知道如何实现这一点,以便我可以指定轴。实施它的最有效方法是什么?

获取指定轴的最小值:

a = np.array([[1,2],[3,4]])
# min value per row
np.min(a, axis=1)

你的公式可能是:

(p/size)*np.sum(a, axis=axis, dtype=dtype) + (1-p)*np.min(a, axis=axis)

最新更新