I_Merak_I 2021-11-28 22:42 采纳率: 25%
浏览 27
已结题

对[x,y]和[[x],[y]]使用numpy.sum()有什么区别吗?

import numpy as np

def function2(x):
    return np.sum(x**2)

def 偏导(f,x):
    h=1e-6
    grad=np.zeros_like(x)
    
    for idx in range(x.size):
        tmp_val=x[idx]
        
        x[idx]=tmp_val+h
        f1=f(x)
        x[idx]=tmp_val-h
        f2=f(x)
        grad[idx]=(f1-f2)/(2*h) 
        x[idx]=tmp_val
    return grad
        
    
x=np.array([3.,4.])
print(偏导(function2,x))

这个的结果是[6. 8.]
但如果x换成[[3.],[4.]],结果就变成[[3.0000005],[4.0000005]]了

我发现问题好像出现在 grad[idx]=(f1-f2)/(2*h) 这一行,但这行只是一步除法,后面f1和f2也不是数组,应该和x没什么关系把

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-11-30 09:55
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 12月6日
  • 修改了问题 11月28日
  • 创建了问题 11月28日