gpt4 book ai didi

python - numpy 中具有相同数组的数组中的项目差异

转载 作者:行者123 更新时间:2023-12-02 02:02:59 25 4
gpt4 key购买 nike

我有一个数字数组a

rnd = np.random.default_rng(12345)
a = rnd.uniform(0, -50, 5)
# array([-11.36680112, -15.83791699, -39.86827287, -33.81273354,
# -19.55547753])

我想找到数组与同一数组中每个元素的差异。示例输出为:

[array([ 0.        ,  4.47111586, 28.50147174, 22.44593241,  8.18867641]),
array([-4.47111586, 0. , 24.03035588, 17.97481655, 3.71756054]),
array([-28.50147174, -24.03035588, 0. , -6.05553933,
-20.31279534]),
array([-22.44593241, -17.97481655, 6.05553933, 0. ,
-14.25725601]),
array([-8.18867641, -3.71756054, 20.31279534, 14.25725601, 0. ])]

我的第一个方法是使用列表理解[i - a for i in a]。然而,由于我的原始数组a非常巨大,并且我有数千个这样的a,我需要在其中执行相同的操作,因此整个过程变得非常慢并且内存不足饥饿到了 jupyter 内核死亡的地步。

有什么办法可以加快速度吗?

最佳答案

最简单的方法是使用 broadcasting :

import numpy as np
rnd = np.random.default_rng(12345)
a = rnd.uniform(0, -50, 5)
a[:, None] - a

输出:

array([[  0.        ,   4.47111586,  28.50147174,  22.44593241,
8.18867641],
[ -4.47111586, 0. , 24.03035588, 17.97481655,
3.71756054],
[-28.50147174, -24.03035588, 0. , -6.05553933,
-20.31279534],
[-22.44593241, -17.97481655, 6.05553933, 0. ,
-14.25725601],
[ -8.18867641, -3.71756054, 20.31279534, 14.25725601,
0. ]])

关于python - numpy 中具有相同数组的数组中的项目差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68781898/

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