【发布时间】:2016-09-05 07:46:13
【问题描述】:
当我尝试创建一个超过 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 乘法(在检查轴是否相同之后)。
有没有可能的解决方法?
【问题讨论】:
-
解决方法取决于我想的用例。愿意提供更多背景信息吗?
-
你知道一个 32 维数组,即使它只有 [2]*32 的最小形状和 float32 dtype,也会占用 16gb 的内存?
标签: python python-3.x numpy multidimensional-array python-2.x