ValueError: too many values to unpack (expected 4)错误,小波变换函数 wavedec2 使用时提示的「建议收藏」

ValueError: too many values to unpack (expected 4)错误,小波变换函数 wavedec2 使用时提示的「建议收藏」    错误信息还算简单,解包成太多的值,意思就是说你要赋值的变量多了,你的values少了结论    你要赋值的变量多了,你的values少了,这是根本原因,就比如a,b,c,d=20,5,5,就会报错我的出错代码importpywtimportxlrdimportnumpyasnpdefexcel2matrix(path):#把x

大家好,又见面了,我是你们的朋友全栈君。

        错误信息还算简单,解包成太多的值,意思就是说你要赋值的变量多了,你的 values 少了

结论

        你要赋值的变量多了,你的 values 少了,这是根本原因,就比如 a, b, c, d = 20, 5, 5 就会报错

我的出错代码

import pywt
import xlrd
import numpy as np

def excel2matrix(path):    # 把xlsx文件的数据变成np.array数组
    data = xlrd.open_workbook(path)
    table = data.sheets()[0]
    nrows = table.nrows  # 行数
    ncols = table.ncols  # 列数
    datamatrix = np.zeros((nrows, ncols))
    for i in range(nrows):
        rows = table.row_values(i)
        datamatrix[i,:] = rows
    return datamatrix

pathX = '11.xlsx'  # 数据路径
x = excel2matrix(pathX)  
a = np.mean(x)
print(a)

w = 'sym4'  # 小波基类型
l = 3       # 小波变换层次
coeffs = pywt.wavedec2(x,w,l)
[cl, (cH3, cV3, cD3), (cH2, cV2, cD2), (cH1, cV1, cD1)] = coeffs

        这个代码报错

ValueError: too many values to unpack (expected 4)

       

原因

        调用 pywt.wavedec2 时参数错误,其大概形式如下

pywt.wavedec2(data, wavelet, mode=’symmetric’, level=None, axes=(-2, -1))
    data:    输入的数据
    wavelet: 小波基
    level:   尺度(要变换多少层)
    return: 返回的值要注意,每一层的高频都是包含在一个tuple中,例如三层的话返回为 [cl, (cH3, cV3, cD3), (cH2, cV2, cD2)(cH1, cV1, cD1)]

        为什么会错呢,因为我直接使用了参数位置匹配,但是中间有一个 mode=’symmetric’ 我没有指定,自然错了所以换成 coeffs = pywt.wavedec2(data=x, wavelet=w, level=l) 按名称绑定参数,就没错了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163782.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java jpa是什么_jpa是什么框架?jpa是什么意思?

    java jpa是什么_jpa是什么框架?jpa是什么意思?你了解jpa吗?很多人表示,对于jpa是一个什么框架并不是很了解,那么下面就一起通过下面的文章内容来了解一下jpa吧!jpa其实就是JavaPersistenceAPI的简称,它的中文名字是Java持久层API,是JDK5.0注解或者XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库当中。JPA的总体思想和现有Hibernate、TopLink、JDO等ORM框架大体一致,总…

  • android rootfs的挂载流程[通俗易懂]

    android rootfs的挂载流程[通俗易懂]一、ramdisk的制作out/host/linux-x86/bin/mkbootfsout/target/product//root|out/host/linux-x86/bin/minigzip>out/target/product//ramdisk.img上述命令分两步进行:1.out/host/linux-x86/bin/mkbootfsout/target/prod

  • spring循环依赖到底怎么解决的_恋爱循环难吗

    spring循环依赖到底怎么解决的_恋爱循环难吗4.AOP中的循环依赖在看自动代理源码的过程中,突然注意到SmartInstantiationAwareBeanPostProcessor接口中的getEarlyBeanReference方法,它是Spring处理循环依赖时返回**未创建完(只实例化未做依赖注入)**Bean的扩展。关于循环依赖可以去Bean的循环依赖一章去详细了解,这里只做简单的说明。有两个单例Bean,A和B,A中引用了B…

  • 一个Python小白5个小时爬虫经历

    一个Python小白5个小时爬虫经历前言最近业余在做一个基于.NETCore的搜索项目,奈何基层代码写好了,没有看起来很华丽的数据供测试。很巧的也是博客搜索,于是乎想到了博客园。C#也能做做页面数据抓取的,不过在博客园看到的大部分都

  • python图像处理之scikit-image基本用法

    python图像处理之scikit-image基本用法本文介绍Python语言用于数字图像处理,那么要使用python进行各种开发和科学计算,需要对应相对的python包,python有很多的数字图像处理相关的包,像PILPillowOpenCVscikit-image等等其中PIL和Pillow只提供最基础的数字图像处理,功能有限;opencv实际上是一个c++库,只是提供了python接口,scikit-image…

  • Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)「建议收藏」

    Java多线程编程:Callable、Future和FutureTask浅析(多线程编程之四)「建议收藏」通过前面几篇的学习,我们知道创建线程的方式有两种,一种是实现Runnable接口,另一种是继承Thread,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,那如果我们想要获取返回结果该如何实现呢?还记上一篇Executor框架结构中提到的Callable接口和Future接口吗?,是的,从JAVASE5.0开始引入了Callable和Future,通过它们构建的线程,在

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号