• Windows10+Python3下安装NumPy+SciPy+Matplotlib


    Numpy、SciPy、MatplotLib是Python下从事科学计算必不可少的库。我在用其他的方法安装时出现各种问题,发现直接安装.whl包是最快且不报错的方法。

    1.下载.whl包
    在下面的网站中找需要的.whl文件下载
    http://www.lfd.uci.edu/~gohlke/pythonlibs/
    要和自己本地安装的版本一致,我选择的whl文件是:
    numpy-1.13.0+mkl-cp36-cp36m-win32.whl
    scipy-0.19.1-cp36-cp36m-win32.whl
    matplotlib-2.0.2-cp36-cp36m-win32.whl

    2.开始在命令行安装
    >pip3 install c:(whl文件下载的路径) umpy-1.13.0+mkl-cp36-cp36m-win32.whl
    >pip3 install c:(whl文件下载的路径)scipy-0.19.1-cp36-cp36m-win32.whl
    >pip3 install c:(whl文件下载的路径)matplotlib-2.0.2-cp36-cp36m-win32.whl

    如果不出意外,这就都安装好了。

    3.开始测试
    测试代码来自:http://www.cnblogs.com/jasonfreak/p/5441512.html 感谢作者

      1 from numpy import array
      2 from numpy.random import normal
      3 from matplotlib import pyplot
      4 
      5 def genData():
      6     heights = []
      7     weights = []
      8     grades = []
      9     N = 10000
     10 
     11     for i in range(N):
     12         while True:
     13             # 身高服从均值172,标准差为6的正态分布
     14             height = normal(172, 6)
     15             if 0 < height: break
     16         while True:
     17             # 体重由身高作为自变量的线性回归模型产生,误差服从标准正态分布
     18             weight = (height - 80) * 0.7 + normal(0, 1)
     19             if 0 < weight: break
     20         while True:
     21             # 分数服从均值为70,标准差为15的正态分布
     22             score = normal(70, 15)
     23             if 0 <= score and score <= 100:
     24                 grade = 'E' if score < 60 else (
     25                 'D' if score < 70 else ('C' if score < 80 else ('B' if score < 90 else 'A')))
     26                 break
     27         heights.append(height)
     28         weights.append(weight)
     29         grades.append(grade)
     30     return array(heights), array(weights), array(grades)
     31 
     32 
     33 # 绘制柱状图
     34 def drawBar(grades):
     35     xticks = ['A', 'B', 'C', 'D', 'E']
     36     gradeGroup = {}
     37     # 对每一类成绩进行频数统计
     38     for grade in grades:
     39         gradeGroup[grade] = gradeGroup.get(grade, 0) + 1
     40     # 创建柱状图
     41     # 第一个参数为柱的横坐标
     42     # 第二个参数为柱的高度
     43     # 参数align为柱的对齐方式,以第一个参数为参考标准
     44     pyplot.bar(range(5), [gradeGroup.get(xtick, 0) for xtick in xticks], align='center')
     45 
     46     # 设置柱的文字说明
     47     # 第一个参数为文字说明的横坐标
     48     # 第二个参数为文字说明的内容
     49     pyplot.xticks(range(5), xticks)
     50 
     51     # 设置横坐标的文字说明
     52     pyplot.xlabel('Grade')
     53     # 设置纵坐标的文字说明
     54     pyplot.ylabel('Frequency')
     55     # 设置标题
     56     pyplot.title('Grades Of Male Students')
     57     # 绘图
     58     pyplot.show()
     59 
     60 
     61 #绘制饼形图
     62 def drawPie(grades):
     63     labels = ['A', 'B', 'C', 'D', 'E']
     64     gradeGroup = {}
     65     for grade in grades:
     66         gradeGroup[grade] = gradeGroup.get(grade, 0) + 1
     67     #创建饼形图
     68     #第一个参数为扇形的面积
     69     #labels参数为扇形的说明文字
     70     #autopct参数为扇形占比的显示格式
     71     pyplot.pie([gradeGroup.get(label, 0) for label in labels], labels=labels, autopct='%1.1f%%')
     72     pyplot.title('Grades Of Male Students')
     73     pyplot.show()
     74 
     75 
     76 #绘制直方图
     77 def drawHist(heights):
     78     #创建直方图
     79     #第一个参数为待绘制的定量数据,不同于定性数据,这里并没有事先进行频数统计
     80     #第二个参数为划分的区间个数
     81     pyplot.hist(heights, 100)
     82     pyplot.xlabel('Heights')
     83     pyplot.ylabel('Frequency')
     84     pyplot.title('Heights Of Male Students')
     85     pyplot.show()
     86 
     87 
     88 #绘制累积曲线
     89 def drawCumulativeHist(heights):
     90     #创建累积曲线
     91     #第一个参数为待绘制的定量数据
     92     #第二个参数为划分的区间个数
     93     #normed参数为是否无量纲化
     94     #histtype参数为'step',绘制阶梯状的曲线
     95     #cumulative参数为是否累积
     96     pyplot.hist(heights, 20, normed=True, histtype='step', cumulative=True)
     97     pyplot.xlabel('Heights')
     98     pyplot.ylabel('Frequency')
     99     pyplot.title('Heights Of Male Students')
    100     pyplot.show()
    101 
    102 
    103 #绘制散点图
    104 def drawScatter(heights, weights):
    105     #创建散点图
    106     #第一个参数为点的横坐标
    107     #第二个参数为点的纵坐标
    108     pyplot.scatter(heights, weights)
    109     pyplot.xlabel('Heights')
    110     pyplot.ylabel('Weights')
    111     pyplot.title('Heights & Weights Of Male Students')
    112     pyplot.show()
    113 
    114 
    115 #绘制箱形图
    116 def drawBox(heights):
    117     #创建箱形图
    118     #第一个参数为待绘制的定量数据
    119     #第二个参数为数据的文字说明
    120     pyplot.boxplot([heights], labels=['Heights'])
    121     pyplot.title('Heights Of Male Students')
    122     pyplot.show()
    123 
    124 data = genData()
    125 print(data)
    126 heights = data[0]
    127 weights = data[1]
    128 grades = data[2]
    129 drawBar(grades)
    130 drawPie(grades)
    131 drawHist(heights)
    132 drawCumulativeHist(heights)
    133 drawScatter(heights, weights)
    134 drawBox(heights)

    运行结果:

    drawBar(grades)

    drawPie(grades)

    drawHist(heights)

    drawCumulativeHist(heights)

    drawScatter(heights, weights)

    drawBox(heights)

    成功!

  • 相关阅读:
    gradle下载安安装教程
    mybatis 一对一association ,一对多collection
    Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js): ModuleBuildError:
    API
    VUE 自定组件,注意事项,注意事件
    IDEA设置
    正则表达式
    前端页面适配的rem换算
    webpack打包原理
    vue-cli脚手架工具根目录的babelrc配置文件
  • 原文地址:https://www.cnblogs.com/jesselzj/p/7086521.html
Copyright © 2020-2023  润新知