如何解决最多多个 numpy 数组
我们可以计算 3 个 numpy 数组的元素最大值:
import numpy as np
A = np.arange(20).reshape((4,5)) # any 4x5 array
B = np.maximum(A,A+7,A+2) # working
但是为什么 np.maximum
不接受来自“解包”的多个数组?
L = [np.roll(A,k,axis=0) for k in range(4)] # 4 arrays: A shifted with different k
np.maximum(*L)
错误:
ValueError: 参数数量无效
毕竟,L
是一个 Numpy 数组对象的 Python 列表,所以 *L
应该为 np.maximum
函数调用解压它。为什么它不起作用?
PS:我也尝试过使用 L = (...)
(提供生成器)或 L = tuple(...)
,但我们遇到了同样的错误。
解决方法
正如评论中指出的,reduce
是这里的解决方案:
np.maximum.reduce([np.roll(A,k,axis=0) for k in range(4)])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。