python - 使用 numpy.save 保存 Numpy 二维数组列表(数组一起呈锯齿状)

标签 python arrays numpy

我有一个很大的图像数据集。当我使用这些图像时,我有几个组成部分——镜像图像、常规图像、特征向量矩阵和特征值向量。

我想像这样存储它:

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 对象数组,它可以是任何东西。根据文档,它似乎使用 python pickle 来打包这些对象。

所以你没有找到后门,它的行为与预期的一样。

关于python - 使用 numpy.save 保存 Numpy 二维数组列表(数组一起呈锯齿状),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36804707/

相关文章:

java - 如何在java中创建通用对象的数组

ruby - 获取数组中三个连续元素的值

python - 将纹理特征集成到基于颜色的视频帧目标检测中

python - 做点积时的 NumPy 精度

python - 多维数据上的 numpy apply_along_axis 计算

python编写程序迭代csv文件以匹配字段并将结果保存在不同的数据文件中

python - 可以在列表中按顺序列出列表的元素吗?

python - 如何在 Foundry Nuke 中获取项目尺寸?

python - 如何安全关闭mlflow ui?

javascript - 如何使用 JavaScript 映射从数组中获取孤立值?