You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Numpy数组索引访问函数f(x,item)的导数df_dx实现方案

Numpy数组索引函数的导数实现

我需要为以下Numpy数组索引访问函数推导导数实现:

def f(x, item):
  return x[item]

def df_dx(x, item):
  pass

其中item的类型遵循Numpy文档规范,可为int、list、slice或slice列表。该场景存在诸多边界情况,我认为可以通过张量乘法实现,但自己编写的代码并未生效,尝试的代码如下:

to_length = lambda i: i if type(i) == int else len(
            range(i.start, (i.stop if i.stop is not None else -1), (i.step if i.step is not None else 1)))

input_shape = list(X.shape)
seg_shape = []
if type(self.item) == int or type(self.item) == slice:
    seg_shape = [to_length(self.item)]
elif type(self.item) == list:
    seg_shape = [to_length(i) for i in self.item]
else:
    raise Exception(f"Unknown type {type(self.item)}")

v = np.zeros(seg_shape + input_shape)
if len(seg_shape) == 1:
    # np.fill_diagonal(v[:, self.i:self.i + self.n], 1)
    np.fill_diagonal(v[..., self.item], 1)
    return v
elif len(seg_shape) == 2:
    np.fill_diagonal(v[:, :, self.item[0], self.item[1]], 1)
    return v

内容的提问来源于stack exchange,提问作者user155370

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:55:18