numpy之 警告VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences

目录

警告

解决


警告

这是我写的读取npz文件的代码,

datas = np.load("bsm.npz", allow_pickle=True)
print(datas.files)
for key, arr in datas.items():
    print(key, ": ", arr)

执行代码之后,可以输出预期的结果,但也得到了警告,如下: 

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.
  val = np.asanyarray(val)

 解决

      其实这不是错误,只是新版numpy的一个警告,可以忽略。当然总是显示影响美观,可以直接关闭该警告。

      这是因为新的numpy版本,将 创建不同长度或形状的列表或元组或ndarray的列表或ndarray元组的功能 会被弃用,虽然能够运行,但是总提示Warning还是很不舒服,况且之后也不能这样用了。

尝试网传的解决方法:

  • 使用更早的numpy版本
  • 添加dtype=object
  • 添加一行忽视报错代码
  • (1)尝试一下网上有种说法是添加“dtype=object”,

    # 3.加载数据
    datas = np.load("bsm.npz", allow_pickle=True, dtype=object)
    print(datas.files)
    for key, arr in datas.items():
        print(key, ": ", arr)
    

    但是还是报错,甚至都不会输出结果了, 

    (2)我们再尝试网上还有一种说法是:numpy的版本过高,需要降低numpy的版本

    查看了自己的numpy的版本,我现在的numpy版本是1.23.0,

     好吧,那我们来重新安装一下低版本的numpy试试,

     等待安装完成的过程中,报错了, 

    好吧。

    (3)在网上还看见一种说法:

    np.warnings.filterwarnings('ignore', category=np.VisibleDeprecationWarning)
    或
    np.warnings.filterwarnings('error', category=np.VisibleDeprecationWarning)

    我们来试试,

     好像没什么用。。。。。。

    (4)最后还是决定忽视它…… 

    来源:水w

    物联沃分享整理
    物联沃-IOTWORD物联网 » numpy之 警告VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences

    发表评论