gpt4 book ai didi

python - 获得两个大数组的线性组合的快速方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:46 29 4
gpt4 key购买 nike

我有两个尺寸为 (87256 X 87256) 的 numpy 数组 A 和 B。

我有一个不断变化的单一因子 alpha。

我正在尝试找到最快的获取方式:

α * A + (1 - α) * B

使用简单的 numpy,计算大约需要 4 分 8 秒。

计算这个数组最快的方法是什么?我有一个多核系统,因此并行计算不是限制。

最佳答案

试试这两个选项:

选项-A

# multiplying only once
C = B + alpha*(A-B)

选项-B

我扩展了@Massifox 的回答。

import numba
import numpy as np

def get_result(A, B, alpha = 0.5):
return B + alpha*(A-B)

get_result_jit = numba.vectorize(['float64(float64, float64, float64)'])(get_result)

其他资源:

  1. Numba tutorial
  2. 参见装饰器:@numba.vectorize , @numba.guvectorize@numba.jit and @numba.njit .
  3. Speeding up algorithms with Numba

关于python - 获得两个大数组的线性组合的快速方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57863064/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com