Numpy 努比中的列维-西维塔张量

Numpy 努比中的列维-西维塔张量,numpy,tensor,Numpy,Tensor,我正在寻找紧凑的numpy代码,以在用户选择的任意数量的维度中生成Levi Civita张量。有什么想法吗?来自sympy张量函数: In [13]: tensor_functions.eval_levicivita(x,y,z) Out[13]: (-x + y)⋅(-x + z)⋅(-y + z) ────────────────────────── 2 de

我正在寻找紧凑的
numpy
代码,以在用户选择的任意数量的维度中生成Levi Civita张量。有什么想法吗?

来自
sympy
张量函数:

In [13]: tensor_functions.eval_levicivita(x,y,z)                                                 
Out[13]: 
(-x + y)⋅(-x + z)⋅(-y + z)
──────────────────────────
            2    

def eval_levicivita(*args):
    """Evaluate Levi-Civita symbol."""
    from sympy import factorial
    n = len(args)
    return prod(
        prod(args[j] - args[i] for j in range(i + 1, n))
        / factorial(i) for i in range(n))
File:      /usr/local/lib/python3.6/dist-packages/sympy/functions/special/tensor_functions.py
Type:      function

对于合理数量的维度,张量的大小并没有那么大,所以我不担心效率。首先,我会尝试一个迭代的解决方案;不必太花哨。

你试过什么了吗?你可以在这里发布代码供人们查看,有人可以帮助你处理或修复它。
einsum
cross
相关:
sympy
related:@cmxu我能说什么?我尝试了我自己想出的几种算法,但结果不好。我不认为浪费任何人的时间和他们在一起有什么意义。这种态度不会引起太多的兴趣。我们大多数人对解决问题更感兴趣,并帮助他人解决问题。是的,一定有人为他们自己的工作制定了通用代码,但他们今天可能不会这样闲逛。