【发布时间】:2018-07-08 08:31:07
【问题描述】:
我正在使用python的numpy通过numpy.asmatrix()将多维数据转换为矩阵。
data_array = [[] for k in range(K)]
while Append data to data_array:
data_array[k].append(data)
mymatrix = numpy.asmatrix(data_array)
data_array 以 K*E 结尾。虽然我尝试使用 mymatrix 进行进一步操作,但事实证明其中一些有效,但其他仍然保留为列表。当我打印出来时,它看起来像
[[ list([..., ...]), list(..., ...) ]]
有谁知道其中的潜在原因?
【问题讨论】:
-
看起来您正在尝试制作至少包含 3 个维度的矩阵。但是矩阵本质上是一个二维的东西。所以 NumPy 唯一能给你的是一个列表矩阵(或者数组,或者......某种序列来保存额外的维度),或者一个错误,所以我猜它选择了第一个。如果你真的想要 3 维,你想要一个数组,而不是矩阵。 (实际上,即使您只需要 2 维,您通常也需要一个带有 numpy 的数组。)
-
同时,你能把它变成minimal reproducible example吗?那个伪代码显然是不可运行的,但它也没有告诉我们你在说什么
E,或者那些data的值是什么。 -
这些列表的大小是否不同?