下面这段代码是使用MatPlotLib绘制数据随时间变化的趋势。

  1. import datetime as dt
  2. import numpy as np
  3. import pandas as pd
  4. import matplotlib.pyplot as plt
  5. import matplotlib.pylab as plb
  6. plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
  7. plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
  8. df = pd.DataFrame(columns=('Time', 'Sales'))
  9. start_date = dt.datetime(2022, 7, 1)
  10. end_date = dt.datetime(2022, 7, 10)
  11. daterange = pd.date_range(start_date, end_date)
  12. fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(15, 5))
  13. for single_date in daterange:
  14. row = dict(zip(['Time', 'Sales'], [single_date, int(50 * np.random.rand(1))]))
  15. row_s = pd.Series(row)
  16. row_s.name = single_date.strftime('%b %d')
  17. df = df.append(row_s)
  18. df.loc['Jul 01': 'Jul 07', ['Sales']].plot(ax=axes[0])
  19. axes[0].set_ylim(0, 50)
  20. axes[0].set_xlabel('Sales Date')
  21. axes[0].set_ylabel('Sale Value')
  22. axes[0].set_title('在轴上表示时间')
  23. axes[0].grid()
  24. # 标绘随时间的趋势
  25. df.loc['Jul 01': 'Jul 07', ['Sales']].plot(ax=axes[1])
  26. xx = np.arange(0, 10).flatten() * 1.0
  27. yy = df['Sales'].values.flatten() * 1.0
  28. # 下面的print用于调试,正式代码中或删除
  29. print('xx: ', xx)
  30. print('type(xx): ', type(xx))
  31. print('type(xx[0]): ', type(xx[0]))
  32. print('xx shape: ', xx.shape)
  33. print('yy: ', yy)
  34. print('type(yy): ', type(yy))
  35. print('type(yy[0]): ', type(yy[0]))
  36. print('yy shape: ', yy.shape)
  37. # 上面的print用于调试,正式代码中或删除
  38. z1 = np.polyfit(xx, yy, 1)
  39. p1 = np.poly1d(z1)
  40. plb.plot(xx, p1(xx), 'm-')
  41. axes[1].set_ylim(0, 50)
  42. axes[1].set_xlabel('Sales Date')
  43. axes[1].set_ylabel('Sale Value')
  44. axes[1].set_title('标绘随时间的趋势')
  45. axes[1].legend(['Sales', 'Trend'])
  46. axes[1].grid()

上面代码在最初运行时,并没有中间一大段print,当执行到z1 = np.polyfit(xx, yy, 1)时报错,在一大段错误信息最后,有一句“TypeError: No loop matching the specified signature and casting was found for ufunc lstsq_n” 。大致意思是:没有找到符合指定签名和特征的循环。

在查找原因的过程中,看到一篇文章pearsonr计算相关性时报错:No loop matching the specified signature and casting was found for ufunc add,其描述的错误现象和上面错误基本相同。于是尝试按照文章中的思路来解决,也才有了上面代码中大段的print。

注意到xx和yy不相同的地方是:xx中元素的类型是:numpy.float64,而yy中元素的类型是float,可能这就是产生错误的原因。于是生成yy的语句由原来的yy = df['Sales'].values.flatten() * 1.0,改为yy = np.array(df['Sales'].values * 1.0, dtype='float64').flatten(),再次运行后没有报错,并绘制出相应的图形。

关于“No loop matching the specified signature and casting was found for ufunc lstsq_n”问题的解决的更多相关文章

  1. 谈一谈JUnit神奇的报错 java.lang.Exception:No tests found matching

    最近在学习Spring+SpringMVC+MyBatis,一个人的挖掘过程确实有点艰难,尤其是有一些神奇的报错让你会很蛋疼.特别是接触一些框架还是最新版本的时候,会因为版本问题出现很多错误,欢迎大家 ...

  2. http.Handler 与Go的错误处理

    原文地址    在之前我写过一篇关于通过使用http.HandlerFunc来实现一个定制handler类型用来避免一些平常的错误的文章.func MyHandler(w http.ResponseW ...

  3. Oracle linux6.1配置yum本地源

    一.准备工作1. Linux安装盘插入光驱2. 挂载光驱 [root@localhost ~]# mount /dev/cdrom /mnt/ mount: block device /dev/sr0 ...

  4. 【linux】yum本地源制作

    在/etc/yum.repos.d/ 目录下,有两个文件  CentOS-Base.repo和 CentOS-Media.repo 其中CentOS-Base.repo 记录着网络上的 yum 源的地 ...

  5. [HIve - LanguageManual] Hive Operators and User-Defined Functions (UDFs)

    Hive Operators and User-Defined Functions (UDFs) Hive Operators and User-Defined Functions (UDFs) Bu ...

  6. [Hive - Tutorial] Built In Operators and Functions 内置操作符与内置函数

    Built-in Operators Relational Operators The following operators compare the passed operands and gene ...

  7. Hive之内置函数

    函数分类 UDF(User Defined Function):数据一对一 UDAF(User Defined Aggreation Function):数据多对一 UDTF(User Defined ...

  8. QC在win7下不能访问QC服务器介绍

    本地访问不了服务器QC的主要几个原因总结 服务器serverjbossextensionhpcmd 2016-03-24   兼容性问题: 1.在服务端QC的安装目录下jboss\server\def ...

  9. iOS支付宝集成时遇到的问题整理(1)

    1.模拟器上运行正常,但是真机调试时报编译链接错误 :ld: '/Users/wangqipeng/Desktop/iOS支付宝官方文档/AlixPayDemo/libcrypto.a(bio_lib ...

随机推荐

  1. 华为Mate14上安装Ubuntu20.04纪要

    Ubuntu16.04用了将近五年了,已经好几年没折腾过系统,所以简要记录一下.   1. 关于UEFI分区,之前的笔记本UEFI是可选的(只是默认该模式),Bios里面还有其他选项.一般安装系统之前 ...

  2. Nginx越界读取缓存漏洞 CVE-2017-7529

    1.漏洞描述 Nginx在反向代理站点的时候,通常会将一些文件进行缓存,特别是静态文件.缓存的部分存储在文件中,每个缓存文件包括"文件头"+"HTTP返回包头" ...

  3. springboot配置logback.xml

    由于springboot框架自带log4j,因此我们只需配置下logback文件,即可, 在main/resources根目录下,新建logback-spring.xml文件,copy下述代码: &l ...

  4. 001 Security概述

    1.Spring Security概述 Spring Security是用于解决认证与授权的框架 SpringSecurity默认要求所有的请求都是必须先登录才允许的访问 BCrypt加密算法 BCr ...

  5. 006面试题__创建String对象

    常见面试题: String s = new String("hello"); 问:创建了几个对象? 答:2个 1. 创建了一个字符常量池,指向了"hello"字 ...

  6. 1269: 求最长上升子序列(LIS)

     题目描述: LIS问题(longest increasing subsequence),即:最长上升子序列问题,是动态规划中一个比较经典的问题.具体描述为:一个有n个整数的序列:A[1],A[2], ...

  7. 整除分块套杜教筛为什么是 O(n^2/3) 的

    假设我们要筛一个东西叫做 \(f\) . 记 \[D(n)=\left\{n,\left\lfloor\dfrac n2\right\rfloor,\left\lfloor\dfrac n3\righ ...

  8. PLC转OPC UA的协议转换网关需要多少钱呢?

    嵌入式OPC UA网关BL102简化了OPC UA程序的开发与IIOT工业物联网应用 在制造业数字化升级过程中,我们碰到最多的工作便是针对每一款PLC去开发一套OPC UA程序,然后通过这套程序去读取 ...

  9. vscode 个人配置 settings.json

    {     "workbench.colorTheme": "Default Dark+",     "workbench.iconTheme&quo ...

  10. if条件控制语句和switch语句

    if条件控制语句(判断范围,在一定区间内容进行判断) if 如果(第一个条件) else if 如果(第二个条件 可以无限加) else 否则(只能有一个 上面都不满足的情况下进入) if和else ...