在学习《Designing Machine Learning Systems with Python》(中文名《机器学习系统设计——python语言实现》)一书中,第三章第二节第三小节部分的泊松分布的python代码在python3.6上运行时报错
TypeError: '>=' not supported between instances of 'range' and 'int'
错误信息很明显,’>=’符号不支持两个类型不同的字符之间的比较
import numpy as np
from scipy.stats import poisson
import matplotlib.pyplot as plt
def pois(x = 1000):
xr = np.arange(x)
ps = poisson(xr)
plt.plot(ps.pmf(x/2))
plt.show()
pois()
关键在于poisson()函数的输入,即xr这个变量,它的类型是range类型,而range类型不能与一个int类型直接判断。我们只需要对它的类型进行下修改就可以了。
我们知道我们的目的是让xr这个变量中的每一个值都与’>=’符号后的int类型数值进行下判断,并将所有结果一起返回。那么我们就可以先试下list类型
输入:
b = list(range(10))
b >= 0
输出:
Traceback (most recent call last):
File "", line 1, in
TypeError: '>=' not supported between instances of 'list' and 'int'
numpy库中也有一个类似的arange()函数,我们测试下。
输入:
import numpy as np
a = np.arange(10)
print (a >= 0);
print(a);
输出:
[ True True True True True True True True True True]
[0 1 2 3 4 5 6 7 8 9]
参考:https://blog.csdn.net/qq_33363973/article/details/79739892
Numpy
由于机器学习算法在数据处理过程中大都涉及线性代数的知识,需要用到矩阵操作,Python本身没有处理矩阵的数据类型,因此需要使用附加的函数库。
其中NumPy函数库是Python开发环境的一个独立模块,是Python的一种开源的数值计算扩展工具。
NumPy的发音是【'numpai】,取自”Numeric(数值)“和”Python“的简写。顾名思义,它是处理数值计算最为基础的类库。NumPy参考了CPython(用C语言实现的pyhton及其解释器)的设计,其本身也是由C语言开发而成的。
这种工具可以用来存储和处理大型多维矩阵,比Python自身的列表结构要高效的多。尽管Python的list类型已经提供了类似于矩阵的表示形式,但是NumPy提供了更多的科学计算函数。
NumPy被定位为数学基础库,属于比较底层的Python库,其地位趋向于成为一个被其它库调用的核心库。
在使用NumPy库之前,首先必须导入该函数库,导入方式如下:import numpy as np
参考链接:https://blog.csdn.net/YPP0229/article/details/94766969
参考链接:https://blog.csdn.net/a373595475/article/details/79580734?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2
Matplotlib是Python的一个绘图库,是Python中最常用的可视化工具之一,可以非常方便地创建2D图表和一些基本的3D图表。
它以各种硬复制格式和跨平台的交互式环境生成出版质量级别的图形。通过Matplotlib,开发者可能仅需要几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图、散点图等。
它提供了一整套和Matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中
原文链接:https://blog.csdn.net/YPP0229/article/details/94764053
参考链接:https://jingyan.baidu.com/article/b7001fe1db54320e7282ddfe.html