gpt4 book ai didi

python - 如何对 2D numpy 数组求平方或求幂(按元素)?

转载 作者:IT老高 更新时间:2023-10-28 22:18:46 25 4
gpt4 key购买 nike

我需要对一个 2D numpy 数组(按元素)求平方,我尝试了以下代码:

import numpy as np
a = np.arange(4).reshape(2, 2)
print a^2, '\n'
print a*a

产生:

[[2 3]
[0 1]]

[[0 1]
[4 9]]

显然,符号 a*a 给了我我想要的结果,而不是 a^2

我想知道是否存在另一种表示法来将 numpy 数组提升到 2 或 N 的幂?而不是 a*a*a*..*a.

最佳答案

最快的方法是执行 a*aa**2np.square(a)np .power(a, 2) 显示要慢得多。

np.power() 允许您对每个元素使用不同的指数,如果您传递另一个指数数组而不是 2。从@GarethRees 的评论中,我刚刚了解到,这个函数会给你带来与 a**2a*a 不同的结果,这在你有小的情况下变得很重要公差。

我已经使用 NumPy 1.9.0 MKL 64 位对一些示例进行了计时,结果如下所示:

In [29]: a = np.random.random((1000, 1000))

In [30]: timeit a*a
100 loops, best of 3: 2.78 ms per loop

In [31]: timeit a**2
100 loops, best of 3: 2.77 ms per loop

In [32]: timeit np.power(a, 2)
10 loops, best of 3: 71.3 ms per loop

关于python - 如何对 2D numpy 数组求平方或求幂(按元素)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25870923/

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