Python numpy.square与**

2024-05-20 03:42:36 发布

您现在位置:Python中文网/ 问答频道 /正文

在Numpy数组上使用numpy.square运算符和使用**运算符有区别吗?

从我所看到的来看,结果是一样的。

执行效率有什么不同吗?

举例说明:

In [1]: import numpy as np

In [2]: A = np.array([[2, 2],[2, 2]])

In [3]: np.square(A)
Out[3]: 
array([[4, 4],
       [4, 4]])

In [4]: A ** 2
Out[4]: 
array([[4, 4],
       [4, 4]])

Tags: inimportnumpyasnp运算符数组out
2条回答

你可以检查一下执行时间,弄清楚情况

In [2]: import numpy as np
In [3]: A = np.array([[2, 2],[2, 2]])
In [7]: %timeit np.square(A)
1000000 loops, best of 3: 923 ns per loop
In [8]: %timeit A ** 2
1000000 loops, best of 3: 668 ns per loop

对于大多数设备,两者都会给您相同的结果。 一般来说,标准的pythonica*aa**2numpy.square()numpy.pow()快,但是numpy函数通常更灵活和精确。 如果您进行的计算需要非常精确,请坚持使用numpy,甚至可能使用其他数据类型float96

对于正常使用,a**2会做得很好,而且比numpy快得多。 在this thread里的人给了类似问题一些很好的例子。

相关问题 更多 >