数组的三个参数 pow

问题描述

pow 接受模 pow(x,y,z) 的第三个参数,它比 x ** y % z 计算效率更高。你怎么能用数组做到这一点?我试过的:

>>> import numpy as np
>>> A = np.array(range(10))
>>> pow(A,23,13)
TypeError: unsupported operand type(s) for pow(): 'numpy.ndarray','int','int'

虽然 ndarray 实现了 __pow__,但直接调用不会做任何事情:

>>> A.__pow__(23,13)
NotImplemented

在两步中使用求幂和取模会产生不正确的结果(猜测它溢出了 dtype)

>>> print(*(A ** 23 % 13))  # wrong result!
0 1 7 9 10 8 11 12 0 6
>>> print(*[pow(int(a),13) for a in A])  # correct result
0 1 7 9 10 8 11 2 5 3

实际数组很大,所以我不能使用 dtype“object”,也不能直接在 Python 中循环。

如何计算 numpy 数组的 3-arg pow?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)