Python 保存4D阵列而不丢失其格式

Python 保存4D阵列而不丢失其格式,python,arrays,numpy,save,google-colaboratory,Python,Arrays,Numpy,Save,Google Colaboratory,我有这个4D数组(numpy.ndarray),我需要以一种在保存它时格式不会改变的方式保存它(因为它应该保持不变),然后在我的Google Colab文件中重用它。我尝试过以不同的格式保存它,当我上传它并在代码中预览它时,即使我以.npy格式保存它,以前的格式也不再被保留。我也尝试过使用GitHub存储库中的原始链接导入日期,或者从本地设备上载日期,但仍然没有机会。我将感谢您对这个问题的评论 进一步阐述: 以下是我用来生成4D阵列的代码: num1=100000 size = (num1, 8

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

进一步阐述:

以下是我用来生成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)必须保持不变。

通常

np.save
np.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

您可以尝试
numpy
文件格式这是否回答了您的问题?保存/加载4D numpy阵列对我很有用。你能提供更多的细节吗,这个简单的4D数组和你所说的格式没有保留是什么意思?你需要更具体地说明如何保存数组。保存前测试数组形状和数据类型。然后在同一台机器上测试负载。然后继续在上传的页面上进行测试。如果有差异,请准确描述。一般的“如果不起作用”问题不会得到好的答案。通常默认的
np.save/load
对可以工作。@谢谢您的评论。我已经用更多的信息更新了我的问题。我尝试了这个方法,但是当我将.npy文件上传到Google Colab并打印它时,它是一个dict对象,我得到一条如下开头的消息:{'P.npy':b“\x93NUMPY\x01\x00v\x00{'descr':'1)是否是Google Collab搞砸了
.npy
文件?2)你试过设置
np.seed(数字)
要获得稳定的结果吗?是的,我在我的Jupyter笔记本上试用过,效果很好。非常感谢!