【发布时间】:2016-08-11 16:50:54
【问题描述】:
我正在编写一个具有 numpy 数组类型属性的类。 由于我希望它是只读的,因此我将其 WRITABLE 标志设置为 false:
import numpy as np
class MyClass:
def __init__(self):
self.my_array = np.zeros(5)
self.my_array.setflags(write=False)
在做一些其他事情之后,我将 MyClass 转储到一个 pickle 文件中:
pickle.dump(self, writer)
稍后,我使用x = pickle.load(reader) 加载它,但随后 WRITABLE 标志为真。
如何使泡菜转储以保留 numpy 数组 WRITABLE 标志?
【问题讨论】:
-
您的构造函数仅在您创建对象实例时运行。你是怎么发现它没有设置标志的?
-
标志没有被保留并不奇怪,因为它们中的大多数代表了酸洗/解酸过程不会保留的属性。例如,C_CONTIGUOUS 和 OWNDATA。
标签: python arrays numpy pickle