带有列表列表的 Scipy.io savemat / loadmat

大信314

我正在尝试创建一个列表列表并将其添加到字典键,然后将字典另存为.mat文件。我的代码如下所示:

from scipy.io import loadmat
dic = {"X": [[1,2,3],[1,2,4],[6,7,8,9],[1]]}
savemat('Test.mat', mdict=dic)

当我加载.mat文件loadmat并打印时dic['X']输出应该是[[1,2,3],[1,2,4],[6,7,8,9],[1]]. 相反,我得到了这个:

[[array([[1, 2, 3]]) array([[1, 2, 4]]) array([[6, 7, 8, 9]]) array([[1]])]]

我的加载和恢复代码片段dic

X = loadmat("Test.mat")
print(X['X'])

如何将原始列表存储到.mat文件中?

jpp

最可能的解释是您的库不能很好地处理列表列表,尤其是在子列表具有不同长度的情况下您应该检查是否确实如此。

根据docsscipy.io.savemat是为数组字典而设计的,这不是您提供的:

将名称和数组的字典保存到 MATLAB 样式的 .mat 文件中。

这会将给定字典中的数组对象保存到 MATLAB 样式的 .mat 文件中。

您可以做的是重组您的数据:

dic = {"A": np.array([1, 2, 3]),
       "B": np.array([1, 2, 4]),
       "C": np.array([6, 7, 8, 9]),
       "D": np.array([1])}

请记住,具有numpy不同长度的行的数组dtype=Object对于大多数向量化函数将变得几乎不可用。它可能不会很好地工作scipy


一个痛苦的解决方案是再次加载数据时执行转换:

import numpy as np
from operator import itemgetter

lst = [[np.array([[1, 2, 3]]), np.array([[1, 2, 4]]),
        np.array([[6, 7, 8, 9]]), np.array([[1]])]]

res = list(map(list, (map(itemgetter(0), map(list, lst[0])))))

[[1, 2, 3], [1, 2, 4], [6, 7, 8, 9], [1]]

Python 中没有原生函数组合,但使用 3rd 方库可以使上述逻辑更具可读性toolz

from operator import itemgetter
from toolz import compose

res = list(map(compose(list, itemgetter(0), list), lst[0]))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用scipy.io.savemat保存嵌套列表

来自分类Dev

scipy.io.loadmat不起作用

来自分类Dev

scipy.io.loadmat()不返回字典

来自分类Dev

有人可以在python(scipy.io)中解释mdict,例如在scipy.io.savemat()中吗?

来自分类Dev

如何使用scipy.io.savemat附加到.mat文件?

来自分类Dev

尝试使用scipy.io.loadmat读取.mat文件时出现“ TypeError:缓冲区对于请求的数组而言太小”

来自分类Dev

使用 scipy.loadmat 加载嵌套的 defaultdict

来自分类Dev

列表列表中的Scipy稀疏矩阵

来自分类Dev

scipy.io.wavfile.write 没有声音

来自分类Dev

Python:带有列表列表的cTurtle

来自分类Dev

如何组织列表列表与scipy.optimize fmin init数组兼容

来自分类Dev

无法使scipy.io.wavfile.read()工作

来自分类Dev

使用scipy.io时出现ImportError

来自分类Dev

无法使scipy.io.wavfile.read()工作

来自分类Dev

从带有条件参数的列表列表中减去列表列表

来自分类Dev

发布带有列表列表的MVC表格

来自分类Dev

对带有列表列表的字典进行操作

来自分类Dev

import.io json API:获取带有子字段的列的列表

来自分类Dev

使用带有空列表属性的 pandas.io.json.json_normalize()

来自分类Dev

将列表列表(即从scipy.spatial.KDTree.query_ball_tree)转换为成对数组的快速方法?

来自分类Dev

Python停止在Loadmat上工作

来自分类Dev

具有元组的列表列表到列表列表

来自分类Dev

具有元组的列表列表到列表列表

来自分类Dev

将带有列表列的小标题保存到磁盘

来自分类Dev

在 Hive 中插入带有分区字段的数据列表列

来自分类Dev

整数列表中的Scipy稀疏数组

来自分类Dev

边缘列表中的Scipy稀疏矩阵

来自分类Dev

从列表中删除 scipy 矩阵中的行

来自分类Dev

scipy.io:element.item(0)与element [0]

Related 相关文章

  1. 1

    使用scipy.io.savemat保存嵌套列表

  2. 2

    scipy.io.loadmat不起作用

  3. 3

    scipy.io.loadmat()不返回字典

  4. 4

    有人可以在python(scipy.io)中解释mdict,例如在scipy.io.savemat()中吗?

  5. 5

    如何使用scipy.io.savemat附加到.mat文件?

  6. 6

    尝试使用scipy.io.loadmat读取.mat文件时出现“ TypeError:缓冲区对于请求的数组而言太小”

  7. 7

    使用 scipy.loadmat 加载嵌套的 defaultdict

  8. 8

    列表列表中的Scipy稀疏矩阵

  9. 9

    scipy.io.wavfile.write 没有声音

  10. 10

    Python:带有列表列表的cTurtle

  11. 11

    如何组织列表列表与scipy.optimize fmin init数组兼容

  12. 12

    无法使scipy.io.wavfile.read()工作

  13. 13

    使用scipy.io时出现ImportError

  14. 14

    无法使scipy.io.wavfile.read()工作

  15. 15

    从带有条件参数的列表列表中减去列表列表

  16. 16

    发布带有列表列表的MVC表格

  17. 17

    对带有列表列表的字典进行操作

  18. 18

    import.io json API:获取带有子字段的列的列表

  19. 19

    使用带有空列表属性的 pandas.io.json.json_normalize()

  20. 20

    将列表列表(即从scipy.spatial.KDTree.query_ball_tree)转换为成对数组的快速方法?

  21. 21

    Python停止在Loadmat上工作

  22. 22

    具有元组的列表列表到列表列表

  23. 23

    具有元组的列表列表到列表列表

  24. 24

    将带有列表列的小标题保存到磁盘

  25. 25

    在 Hive 中插入带有分区字段的数据列表列

  26. 26

    整数列表中的Scipy稀疏数组

  27. 27

    边缘列表中的Scipy稀疏矩阵

  28. 28

    从列表中删除 scipy 矩阵中的行

  29. 29

    scipy.io:element.item(0)与element [0]

热门标签

归档