将 numpy 数组保存到 csv 会产生 TypeError Mismatch

2023-11-22

我有一个 numpy 数组,其中包含以下形式的数字数据:

example = numpy.array([[[i for i in range(0, 5)],[0 for j in range(0, 5)]] for k in range(0, 10)])

所以它是 10 组的数组,其中每组由 2 个长度相等的列表组成,并且仅包含数字。 运行以下保存代码会出现以下错误:

numpy.savetxt('exampleData.csv', test, delimiter=',')
TypeError: Mismatch between array dtype ('int32') and format specifier ('%.18e %.18e')

我猜想这可以通过 fmt='xyz' 参数中的某些内容来解决,但文档并不是特别清楚。任何帮助,将不胜感激。

(在我的实际数据中, i 和 j 列表是长浮点数列表,例如 '0.0047322940571' 等)


Your example是一个 3d 数组

In [82]: example=np.array([[[i for i in range(0, 5)],[0 for j in range(0, 5)]] for  k in range(0, 3)])  # chg 10 to 3 for display

In [83]: example.shape
Out[83]: (3L, 2L, 5L)

In [84]: example
Out[84]: 
array([[[0, 1, 2, 3, 4],
        [0, 0, 0, 0, 0]],

       [[0, 1, 2, 3, 4],
        [0, 0, 0, 0, 0]],

       [[0, 1, 2, 3, 4],
        [0, 0, 0, 0, 0]]])

尝试保存整个内容会导致错误(由于版本不同而有不同的消息):

In [87]: np.savetxt('test.csv',example, delimiter=',')
....
TypeError: float argument required, not numpy.ndarray 

但保存一“行”就可以了

In [88]: np.savetxt('test.csv',example[1,...], delimiter=',')

以整数格式保存可以使输出更漂亮

In [94]: np.savetxt('test.csv',example[1,...], delimiter=',',fmt='%d')

In [95]: with open('test.csv') as f:print f.read()
0,1,2,3,4
0,0,0,0,0

那么你希望如何保存 3d 数组呢?请记住您将如何使用它/阅读它。多个文件?一个文件内有多个块?

https://stackoverflow.com/a/3685339/901925是一个关于如何保存 3d 数组的 6 年前的答案。简单的答案是打开一个文件,然后执行多个savetxt对于数组的切片。这将数据保存在块中。但是加载这些块是另一个SO问题(之前已经出现过)。

In [100]: with open('test.csv','w') as f:
     ...:     for row in example:
     ...:         np.savetxt(f,row,delimiter=',',fmt='%d',footer='====')
     ...:         

In [101]: with open('test.csv') as f:print f.read()
0,1,2,3,4
0,0,0,0,0
# ====
0,1,2,3,4
0,0,0,0,0
# ====
0,1,2,3,4
0,0,0,0,0
# ====

为了回应你的评论,这有效

example=np.ones((4,2,100))
np.savetxt('test.csv',example[1,...], delimiter=',',fmt='%.18e')

保存 3d 数组的另一种方法是将其重塑为 2d。加载后,您可以将其重新整形回 3D,可能使用您存储在注释行中的信息

np.savetxt('test.csv',example.reshape(-1,example.shape[-1]), delimiter=',',fmt='%.18e')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 numpy 数组保存到 csv 会产生 TypeError Mismatch 的相关文章

随机推荐

  • C++1z 范围的状态? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 C 委员会中有一个关于范围的研究小组 但我没有关注这个研究组的历史 并且我不确定 C 1z 预计会提供什么样的交付 而且我不使用 boost range 所以我对现有实践没有清晰的看
  • 在 SQLAlchemy 中查询混合属性

    我将文件路径存储为数据库中的相对路径 但随后使用混合属性在映射时将其转换为绝对路径 当我使用此属性查询时 它会抛出错误 这是模型 class File Base tablename files f path Column Unicode 3
  • 文本框宽度问题 - ASP.NET

    我在网站页面上有一个生成文本框的用户控件 文本框已指定宽度 但文本框间歇性地以比代码中指定的宽度小得多的宽度显示 我要求用户向我发送 查看源代码 输出的副本 以便我可以比较好结果和坏结果 我所说的 间歇性 是指类似的构建 不同的计算机 请注
  • 在商业软件中分发jquery许可证[关闭]

    Closed 这个问题是无关 目前不接受答案 我正在构建一个使用 jquery 的商业 Web 应用程序 我想我需要使用MITjquery 的许可证 因为该应用程序是商业应用程序 当我在维基百科上查看 MIT 许可证时 它说 这是一个宽松的
  • 无法连接到“localhost”上的 MySQL 服务器 (10061)

    我最近在 Windows 2003 上安装了 MySQL 5 并尝试配置实例 一切工作正常 直到我进入 应用安全设置 此时它给了我上述错误 Can t connect to MySQL server on localhost 10061 我
  • 使用ANT更新内部版本号并注入源代码

    在我的 build xml 文件中 我在属性文件中增加构建版本号 如下所示
  • Python 中的构造“ if __name__ == '__main__' ” [重复]

    这个问题在这里已经有答案了 我已经阅读了很多关于此的文章 if name main 但我不明白 我将分享你的代码 更简短的解释是什么 我创建了一个文件 ab py def a print A function in ab file a 第二
  • “git checkout --” 和有什么不一样?和“git Reset HEAD --hard”?

    这不是关于 的作用的一般问题 如标记的重复项中所示 这是一个特定于 git 的问题 要求澄清上述命令之间的操作差异 如果我想清理当前目录而不存储或提交 我通常使用以下命令 git reset HEAD hard git clean fd 一
  • 在 JSP 中编写 URL

    假设我当前的 URL 是 app jsp filter 10 sort name 我在 JSP 中有一个分页组件 它应该包含如下链接 app jsp filter 10 sort name page xxx 如何通过向当前 URL 添加新参
  • 如何在javascript中获取输入文本长度并验证用户

    我想根据输入字段右侧的长度 对于我的情况五 来验证用户在创建帐户时输入的用户名和密码是否安全 通过以不同的颜色显示 即较短 的红色 否则为绿色 我怎样才能用javascript做到这一点 JavaScript 验证并不安全 因为任何人都可以
  • 从 NIF 调用 Erlang 函数

    是否可以从 NIF 调用 Erlang 函数 回调函数 我读了文档 http www erlang org doc man erl nif html 但没有找到如何做到这一点 不 从 NIF 调用 Erlang 函数是不可能的 您可以在 E
  • 不同服务器上服务器的全局文化不同时的日期时间问题

    我的网站托管在不同位置的多个服务器上 每个地方的数据格式文化都不同 我们使用mm dd yyyy格式化每个地方 但以防某些服务器将区域性设置为dd mm yyyy然后我们的网站会生成日期时间异常 每当将字符串转换为日期时 您都应该指定要使用
  • jQuery Mobile -> 页面生命周期?

    jQuery Mobile 页面是否有类似生命周期的东西 比如在 init show hide back 或其他事件上触发的事件 提前致谢 Intro 在这里找到的所有信息也可以在我的博客中找到ARTICLE 您还将找到工作示例 页面转换期
  • Firestore 函数触发器算作读取吗?

    我知道您可能在想什么 为什么这很重要 不要为了优化定价而试图使其变得过于复杂 就我而言 我需要这样做 我在 Firestore 中有一个包含数百万条记录的集合 并且每个文档都会经常更新 每次更新时 我都需要进行一些数据清理 以及更多 所以我
  • IntelliJ IDEA 13.1 缺少运行/调试窗口

    更新我的 IntelliJ IDEA 从 13 0 3 到 13 1 后运行 调试窗口不显示 相应的菜单项在View Tool Windows已停用 我尝试编辑 idea workspace xml 或使用插件 ToolWindow Man
  • 串行队列/私有调度队列如何知道任务何时完成?

    也许回答者是串行调度队列如何保证资源保护 但我不明白如何 Question gcd 如何知道异步任务 例如网络任务 何时完成 我应该使用dispatch retain and dispatch release以此目的 Update 我无法使
  • 如何操作 R 中的 ggplot 以在 lhs 上为角度=45 长 x 轴标签留出额外空间? [复制]

    这个问题在这里已经有答案了 我有几个 geom bar ggplots 其中 x 轴文本的名称很长 如果我以角度 90 绘制它们 则图表底部会占用大量空间 因此我尝试角度 45 这会导致第一个标签的左侧被切断 有没有办法增加左边距 不允许发
  • 当用户通过 选择文件时如何获取文件名?

    我以前见过类似的问题 由于安全原因 最终没有解决 但今天 当我打开一张票并在他们的后端附加一个文件时 我看到 Hostmonster 已经成功实现了这一点 它适用于 Firefox 和 IE 确切地说是版本 8 我已经验证它完全是客户端脚本
  • 如何在 Linux 上通过脚本找到文件的编码?

    我需要找到放置在目录中的所有文件的编码 有没有办法找到所使用的编码 The file命令无法执行此操作 我感兴趣的编码是ISO 8859 1 如果编码是其他的 我想将文件移动到另一个目录 听起来您正在寻找enca 它可以猜测甚至可以在编码之
  • 将 numpy 数组保存到 csv 会产生 TypeError Mismatch

    我有一个 numpy 数组 其中包含以下形式的数字数据 example numpy array i for i in range 0 5 0 for j in range 0 5 for k in range 0 10 所以它是 10 组的