在操作数上评估爱因斯坦求和约定。
使用爱因斯坦求和约定,可以以简单的方式表示许多常见的多维线性代数数组运算。在隐式模式下einsum计算这些值。
在显式模式下,einsum通过禁用或强制对指定的下标标签求和,可以提供更大的灵活性来计算其他数组操作,而这些操作可能不被视为经典的爱因斯坦求和操作。
请参阅注释和示例以进行澄清。
参数:subscripts: : str
将要求和的下标指定为下标标签的逗号分隔列表。除非包含显式指示符“->”以及精确输出形式的下标标签,否则将执行隐式(经典的爱因斯坦求和)计算。
operands: : list of array_like
这些是用于操作的数组。
out: : ndarray, 可选参数
如果提供的话,将在此数组中进行计算。
dtype: : {data-type, None}, 可选参数
如果提供,则强制计算使用指定的数据类型。请注意,您可能还必须提供一个更宽松的转换参数以允许进行转换。默认为无。
order: : {‘C’, ‘F’, ‘A’, ‘K’}, 可选参数
控制输出的内存布局。 ‘C’表示它应该是C连续的。 ‘F’表示它应该是Fortran连续的,‘A’表示如果所有输入都为‘F’,则它应该是‘F’,否则为‘C’。 ‘K’表示它应尽可能靠近输入,包括任意排列的轴,尽可能靠近布局。默认值为‘K’。
casting: : {‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘unsafe’}, 可选参数
控制可能发生的数据类型转换。不建议将其设置为‘unsafe’,因为它可能会对累积产生不利影响。
‘no’ means the data types should not be cast at all.
‘equiv’ means only byte-order changes are allowed.
‘safe’ means only casts which can preserve values are allowed.
‘same_kind’ means only safe casts or casts within a kind,
like float64 to float32, are allowed.
‘unsafe’ means any data conversions may be done.
默认值为‘safe’。
optimize: : {False, True, ‘greedy’, ‘optimal’}, 可选参数
控制是否应该进行中间优化。如果False和True将默认设置为‘greedy’算法,则不会进行优化。还接受来自np.einsum_path功能。看到np.einsum_path更多细节。默认为False。
返回值:output: : ndarray
基于爱因斯坦求和约定的计算。
注意:
1.6.0版中的新功能。
爱因斯坦求和约定可用于计算许多多维的线性代数数组运算。einsum提供了一种简洁的表示方式。
这些操作的非详尽列表,可以通过以下方式计算einsum,以及示例如下所示:
下标字符串是用逗号分隔的下标标签列表