numpy - numpy 中不同行长度的矩阵

标签 numpy matrix theano

有没有一种方法可以在 numpy 中定义具有不同长度的行的矩阵(例如 m),但使 m 保持二维(即 m.ndim = 2 )?

例如,如果您定义m = numpy.array([[1,2,3], [4,5]]),则m.ndim = 1.我明白为什么会发生这种情况,但我很感兴趣是否有任何方法可以欺骗 numpy 将 m 查看为 2D。一种想法是用虚拟值填充,以便行变得相同大小,但我有很多这样的矩阵,它会占用太多空间。我真正需要 m 为 2D 的原因是我正在使用 Theano,并且将被赋予 m 值的张量需要一个 2D 值。m p>

最佳答案

我将在这里提供有关 Theano 的最新信息。我们有一个新的 TypedList() 类型,它允许 Python 列表中所有元素具有相同类型:如 1d ndarray。除了文档之外,一切都已完成。

您可以使用它们执行的功能有限。但我们这样做是为了允许使用 scan 循环输入列表。它尚未与 scan 集成,但您现在可以像这样使用它:

import theano
import theano.typed_list

a = theano.typed_list.TypedListType(theano.tensor.fvector)()
s, _ = theano.scan(fn=lambda i, tl: tl[i].sum(),
                   non_sequences=[a],
                   sequences=[theano.tensor.arange(2, dtype='int64')])

f = theano.function([a], s)
f([[1, 2, 3], [4, 5]])

一个限制是 scan 的输出必须是 ndarray,而不是类型化列表。

关于numpy - numpy 中不同行长度的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24203451/

相关文章:

python - Numpy(或 Theano)中的切片矩阵

python - 解释(和比较)numpy.correlate 的输出

python - 迭代 3D numpy 数组列并将值更改为邻居(如果低于数字)

python - 将数组列表转换为 Pandas 数据框

matlab - 轴角旋转矢量如何工作,以及它们与旋转矩阵的比较?

python - 如何有效地计算numpy中两个系列矩阵的外积?

python - 如何在不转换为 pd.DataFrame 的情况下在具有 np.nan 值的矩阵上计算 np.cov?

r - 从 R 中的向量创建矩阵

python - Conda安装的包,Python找不到

python - 没有名为 nanguardmode 的模块