gpt4 book ai didi

python - 使用 numpy 的高效标准基向量

转载 作者:太空狗 更新时间:2023-10-29 17:24:18 25 4
gpt4 key购买 nike

给定索引和大小,是否有更有效的方法来生成 standard basis vector :

import numpy as np
np.array([1.0 if i == index else 0.0 for i in range(size)])

最佳答案

In [2]: import numpy as np

In [9]: size = 5

In [10]: index = 2

In [11]: np.eye(1,size,index)
Out[11]: array([[ 0., 0., 1., 0., 0.]])

嗯,不幸的是,为此使用 np.eye 相当慢:

In [12]: %timeit np.eye(1,size,index)
100000 loops, best of 3: 7.68 us per loop

In [13]: %timeit a = np.zeros(size); a[index] = 1.0
1000000 loops, best of 3: 1.53 us per loop

包装 np.zeros(size);函数中的 a[index] = 1.0 只产生适度的差异,并且仍然比 np.eye 快得多:

In [24]: def f(size, index):
....: arr = np.zeros(size)
....: arr[index] = 1.0
....: return arr
....:

In [27]: %timeit f(size, index)
1000000 loops, best of 3: 1.79 us per loop

关于python - 使用 numpy 的高效标准基向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11975146/

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