gpt4 book ai didi

python - numpy.mean(X,axis=0) 当二维数组时,否则什么都不做

转载 作者:行者123 更新时间:2023-12-03 19:42:13 25 4
gpt4 key购买 nike

我有一个函数,除其他外,它计算 ndarray(2d 或 1d)行的平均值。这是通过 ndarray.mean(axis=0)
对于一维数组,我希望它只返回自身,因为只有 1 个“行”,而不是平均元素并返回标量。

除了检查 ndim 之外,还有其他 Pythonic 的方法可以做到这一点吗?在取平均值之前的属性?

def d_Error(X, y, weights, bias):
y_hat = probability(X, weights, bias)
dE_matrix = (X.T * (y - y_hat)).T # each row is the gradient at that sample
dEdw = np.mean(dE_matrix, axis=0) # get average gradient
dEdb = (y - y_hat).mean() # gives scalar
dEdz = np.append(dEdw, dEdb)
return dEdz

最佳答案

使用 np.atleast_2d ——

np.atleast_2d(ar).mean(axis=0)

对于二维, np.atleast_2d不会改变任何东西。对于 1D ,让我们看一个示例案例——
In [125]: a1D = np.arange(4).astype(float)

In [126]: a1D
Out[126]: array([0., 1., 2., 3.])

In [127]: np.atleast_2d(a1D).mean(axis=0)
Out[127]: array([0., 1., 2., 3.])

另一个 reshape -
ar.reshape(-1,ar.shape[-1]).mean(0)

关于python - numpy.mean(X,axis=0) 当二维数组时,否则什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62201444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com