当我尝试创建一个超过 32 维的 numpy 数组时,出现错误:
import numpy as np
np.ndarray([1] * 33)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-2-78103e601d91> in <module>()
----> 1 np.ndarray([1] * 33)
ValueError: sequence too large; cannot be greater than 32
我发现这个: Using numpy.array with large number of dimensions 与这个问题相关但我想这样做而不构建我自己的版本。
我的用例:
我正在使用联合概率分布,我试图在轴上表示每个变量,以便对其进行计算(边缘化、减少)是单行操作。例如,对于边缘化操作,我可以简单地对该变量的轴求和。对于乘法,我可以简单地做一个简单的 numpy 乘法(在检查轴是否相同之后)。
有没有可能的解决方法?
原文由 Ankur Ankan 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 1d 中维护数据,并有选择地重塑以专注于给定维度
为了显示
完全重塑
部分重塑 - 相同的数字,不同的结果形状
我不会在接近 32+ 维度的任何东西上对此进行测试。如评论中所述,如果许多维度大于 1,则整个数组大小将过大。