在使用numpy.einsum
函数时,可以使用out
参数来避免在内存中存储中间大维数组,实现惰性评估。下面是一个代码示例:
import numpy as np
# 创建输入数组
A = np.random.rand(100, 100)
B = np.random.rand(100, 100)
C = np.random.rand(100, 100)
# 创建输出数组,指定dtype和形状
out = np.empty((100, 100), dtype=np.float64)
# 使用einsum函数计算结果,将结果存储在输出数组中
np.einsum('ij,jk,kl->il', A, B, C, out=out)
# 访问结果,不会再占用额外的内存
print(out)
在上面的示例中,我们通过传递out
参数来指定了输出数组,这样就可以避免在内存中存储中间大维数组。最终的结果将直接存储在out
数组中,而不会创建额外的中间数组。