【问题标题】:Saving 4D array without losing its format保存 4D 数组而不丢失其格式
【发布时间】:2021-08-27 16:35:17
【问题描述】:

我有这个 4D 数组 (numpy.ndarray),我需要以一种在我保存它时它的格式不会改变的方式保存它(因为它应该保持不变),然后在我的 Google Colab 文件中重用它。我尝试以不同的格式保存它,当我上传它并在我的代码中预览它时,即使我将它保存为 .npy 格式,也不再保留以前的格式。我还尝试使用我的 GitHub 存储库中的原始链接导入日期或从我的本地设备上传日期,但仍然没有机会。对于这个问题,我将不胜感激您的 cmets!

进一步阐述:

这是我用来生成 4D 数组的代码:

num1=100000
size = (num1, 8, 4, 4)
prob_0 = 0.3 # 30% of zeros
prob_1 = 1 - prob_0 # 70% of ones
P = np.random.choice([0, 1], size=size, p=[prob_0, prob_1])

我需要将此 P 保存为文件并在 Google Colab 中使用。我必须保存它以维护初始数据,并且每次运行代码时都不会提出不同的 4D 数组。此数据(即 P)必须保持不变。

【问题讨论】:

  • 你可以试试numpy文件格式
  • 这能回答你的问题吗? How to save and load numpy.array() data properly?
  • 保存/加载 4D numpy 数组对我有用。您能否提供更多详细信息,这是一个简单的 4D 数组吗?您所说的格式未保留是什么意思?
  • 您需要更具体地了解如何保存数组。在保存之前测试数组 - shape 和 dtype。然后在同一台机器上测试负载。然后继续对上传的进行测试。如果有差异,请准确描述。一般的“如果不起作用”的问题不会得到好的答案。通常默认的np.save/load 对有效。
  • @crayxt 感谢您的评论。我已经用更多信息更新了我的问题。

标签: python arrays numpy save google-colaboratory


【解决方案1】:

通常np.savenp.load 有效

>>> P.shape
(100000, 8, 4, 4)
>>> np.save("P.npy", P)
>>> P2 = np.load("P.npy")
>>> P2.shape
(100000, 8, 4, 4)
>>> np.allclose(P, P2)
True

【讨论】:

  • 我试过了,但由于它是一个 dict 对象,当我将 .npy 文件上传到 Google Colab 并打印它时,我收到一条消息,开头如下: {'P.npy': b"\x93NUMPY\ x01\x00v\x00{'descr': '
  • 1) 会不会是 Google Collab 搞砸了 .npy 文件?
  • 2) 您是否尝试设置np.seed(number) 以获得恒定的结果?
  • 是的,我在我的 Jupyter 笔记本上试过了,它工作正常。非常感谢!
猜你喜欢
  • 2013-06-13
  • 2020-05-29
  • 1970-01-01
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
  • 1970-01-01
相关资源
最近更新 更多