在 numpy 中高效创建数组
Efficient array creation in numpy
我正在尝试创建一个三维数组,Tusing numpy 定义如下:
T_{i, j, k} = \delta_{i, k} - \delta{j, k}
其中 \delta_{i, j} 是 Kronecker delta 函数(当 i=j 时为 1,否则为 0)。我想知道使用 numpy 执行此操作的最有效方法是什么。我可以使用 for 循环创建两个三维数组并将它们相减。但我怀疑有一种更快、更惯用的方法。任何帮助将不胜感激。
在numpy中相当于delta的是eye
:
delta = numpy.eye(5)
T = delta[:,None,:] - delta[None,:,:]
None
创建一个 ‹virtual› 维度(不占用任何额外内存)用于在 numpy 中广播。
我正在尝试创建一个三维数组,Tusing numpy 定义如下:
T_{i, j, k} = \delta_{i, k} - \delta{j, k}
其中 \delta_{i, j} 是 Kronecker delta 函数(当 i=j 时为 1,否则为 0)。我想知道使用 numpy 执行此操作的最有效方法是什么。我可以使用 for 循环创建两个三维数组并将它们相减。但我怀疑有一种更快、更惯用的方法。任何帮助将不胜感激。
在numpy中相当于delta的是eye
:
delta = numpy.eye(5)
T = delta[:,None,:] - delta[None,:,:]
None
创建一个 ‹virtual› 维度(不占用任何额外内存)用于在 numpy 中广播。