python - 尝试保存 .npy (numpy) 文件时出错
问题描述
c:\python38\lib\site-packages\numpy\core_asarray.py:136: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences(这是一个列表或元组的列表或元组或具有不同长度或形状)已弃用。如果您打算这样做,则必须在创建 ndarray 返回数组时指定“dtype=object”(a, dtype, copy=False, order=order, subok=True)
我已经在stackoverflow中解决了一些问题,因此尝试为此升级scipy,但它显示了另一个错误:
错误:tensorflow 2.2.0 有要求 scipy==1.4.1; python_version >= "3",但你将拥有不兼容的 scipy 1.5.0。
有人能说出为什么会这样吗?
解决方案
在 numpy 1.19dev 中,尝试从不规则的列表或数组列表创建数组开始显示此警告。开发人员正在尝试解决一个已经存在了一段时间的问题。 np.save
保存数组,所以如果给定一个列表,它首先把它变成一个数组:
In [227]: np.save('test.npy', [[1,2,3],[4,5]])
/usr/local/lib/python3.6/dist-packages/numpy/core/_asarray.py:136: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
return array(a, dtype, copy=False, order=order, subok=True)
加载这样的数组也会产生错误:
In [228]: np.load('test.npy')
---------------------------------------------------------------------------
ValueError: Object arrays cannot be loaded when allow_pickle=False
In [229]: np.load('test.npy', allow_pickle=True)
Out[229]: array([list([1, 2, 3]), list([4, 5])], dtype=object)
推荐阅读
- python - 从位于一个文件中的 python 列表中读取,并在另一个 .bat 脚本中使用它?
- java - 使用刷新令牌对 JWT 的端点 /logout 执行的操作
- python - 如何更新嵌套在另一个中的字典?
- java - java父构造函数依赖于其不同的子字段值?
- java - 在Activity中继承抽象类时出现NoSuchMethodException
- plsql - 如何在 API 函数中进行更新
- javascript - /resources/js/common.js 文件如何从 .env 文件中读取值?
- amazon-web-services - AWS CloudFront 只会使整个缓存失效
- javascript - VueJs 2:如何在另一个组件中使用一个组件功能?
- repast-simphony - 命令行批处理在 Linux 上运行