python - 向量化 numpy 运算

标签 python arrays numpy

我有一个一维 numpy ndarray V。我的运算是 H = (V/a)**b,其中 a 和 b 只是标量。这很简单,但我需要运行多个实验(数千次),尝试 a 和 b 的不同变体。使用 for 循环很容易做到这一点,但我希望它尽可能快地运行,所以我想进行矢量化。所以,假设我也生成了 a 和 b 的一维 ndarray。给定 3 个一维数组 V、a 和 b,我该如何有效地完成此操作?谢谢!

最佳答案

你可以这样做:

import numpy as np

V = np.arange(100.0)
a = np.random.rand(50)
b = np.random.rand(50)

result = (V[np.newaxis, :] / a[:, np.newaxis]) ** b[:, np.newaxis]

result 的大小为 50x100,因此 result[i] 将是使用参数 a[i] 的结果>b[i].

关于python - 向量化 numpy 运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46426016/

相关文章:

java - 将 C# 字节数组转换为 Java 字节数组以及 Java 中的最大数组大小

arrays - 动画数组结束于第一张图片

python - 如何从角点检测给出的点数组中检测特定的坐标点?

python - 无法从 jupyter 启动 tensorboard

Python:跟踪 For 循环的执行

javascript - 如何找到任何网页上每个按钮的坐标?

python - Numpy 随机排列行,然后仅按一列排序

python - 计算 Pandas 数据框列组合之间距离的有效方法

python 转发 SIGINT 到子进程

python - 根据 Pandas 中的整数分解行