我有一个函数,除其他外,它计算数组(2d或1d)行的平均值。这是通过ndarray.mean(axis=0)
对于1d数组,我希望它只返回自身,因为只有1行,而不是平均元素并返回标量
除了在取平均值之前检查ndim
属性之外,还有其他类似python的方法吗
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
一个不那么优雅的解决方案,但更多的是一个“技巧”,它将索引元组传递给
axis=…
参数。如果为空,则返回原始数组。因此,您可以向其传递一系列索引:因此,对于2d数组,这将导致一个单元组
(0,)
,对于1d数组,这将导致一个空元组()
使用^{} -
对于2D,
np.atleast_2d
不会改变任何东西。对于1D
,让我们看一个示例案例-另一个与重塑-
相关问题 更多 >
编程相关推荐