python - 从两个数组中减去所有值对

标签 python arrays numpy bigdata

我有两个向量,v1v2。我想从 v1 的每个值中减去 v2 的每个值,并将结果存储在另一个向量中。我也想使用非常大的向量(例如 1e6 大小),所以我认为我应该使用 numpy 来提高性能。

到目前为止,我有:

import numpy
v1 = numpy.array(numpy.random.uniform(-1, 1, size=1e2))
v2 = numpy.array(numpy.random.uniform(-1, 1, size=1e2))
vdiff = []
for value in v1:
    vdiff.extend([value - v2])

这将创建一个包含 100 个条目的列表,每个条目都是一个大小为 100 的数组。不过我不知道这是否是最有效的方法。 我想用尽可能小的对象大小(内存方面)非常快速地计算 1e4 所需值。

最佳答案

您不会从您提到的巨型数组中获得太多乐趣。但是,如果您有更合理大小的矩阵(小到足以将结果放入内存),最好的方法是使用 broadcasting。 .

import numpy as np

a = np.array(range(5, 10))
b = np.array(range(2, 6))

res = a[None, :] - b[:, None]
print(res)
# [[3 4 5 6 7]
#  [2 3 4 5 6]
#  [1 2 3 4 5]
#  [0 1 2 3 4]]

关于python - 从两个数组中减去所有值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26076576/

相关文章:

arrays - 如何在 MATLAB 中显示和访问结构数组内容?

python - 计算求解 100 个变量的非线性方程组

python - django - 一个内联多个模型

python - 做 Django 导入的正确方法是什么?

c++ - 如何将3D尺寸不固定的3D数组展平为1D数组?

C++ Cin 输入到数组

python - 使用可变数组索引进行向量化

python - 将 numpy 数组绘制为直方图

python - 有人可以对 scikit learn 中的参数 var_smoothing 对 GaussianNB 的作用给出一个很好的数学/统计解释吗?

python - 如何让 Pylance 的类型检查与此 Pydantic 示例一起使用?