我有一个很大的图像数据集。使用图像时,我有几个组成部分-镜像图像,常规图像,特征向量矩阵和特征值向量。
我想将其存储为:
training_sunsets_data = [cropped_training_sunsets,
mirrored_training_sunsets,
rgb_cov_eigvec_training_sunsets,
rgb_cov_eigval_training_sunsets]
np.save('training_sunsets_data',training_sunsets_data)
在编写本文时,我正在对其进行测试(因为我确定它会失败),而当我这样做时,最奇怪的事情发生了:它起作用了。
此外,当我将其重新加载到代码中时,它是ndarray类型,但它是一个锯齿状的数组。
如果numpy不允许交错的多维数组怎么办?我是否只是找到一种后门方式来在numpy中创建锯齿状数组?
在我的机器上测试后:
import numpy as np
np.save('testnp.npy', [[2,3,4],[1,2]])
np.load('testnp.npy')
# array([[2, 3, 4], [1, 2]], dtype=object)
如示例代码所示,已加载的对象为类型ndarray
,但其数据类型为object
。这意味着np.save
存储一个python对象数组,可以是任何对象。根据文档,似乎使用pythonpickle
打包那些对象。
因此您没有找到后门,它的行为与预期的一样。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句