首页 > 编程语言 >练习04_Python常用库

练习04_Python常用库

时间:2023-03-28 09:24:12浏览次数:33  
标签:plt 04 Python 练习 print python np import numpy

本周我们一起来了解一下:

  1. python库的导入
  2. 数据分析常用python库:
    1. Numpy,
    2. SciPy,
    3. Matplotlib,
    4. pandas,
    5. StatsModels,
    6. scikit-learn,
    7. keras
  3. python库的导入
    前两周我们练习了python的部分自带功能,但是,仅仅依靠python自带功能是远远不够数据分析的,更不用提软件工程开发。

总有一些软件爱好者和开发者愿意贡献他们的劳动成果,这些贡献出来的python库实现了通用功能,比如统计计算,绘图等,越来越多的人贡献自己的知识完善这些库,以至于使python越来越强大。我们把这个群体叫做“开源社区”“开源贡献者”。

因此,我们需要导入第三方开发的python库,库也可叫做包,或者模块。

import语句用于导入python

## math库用于数学运算
import math
math.sin(0)
math.sin(math.pi/2)

自定义库的名称

import math as m
m.sin(0)

导入库中的特定函数

from math import exp as e
e(2)

导入库中的所有函数

from math import *
exp(2)
sin(pi/2)

第三方库的下载安装

pip install ***

easy_install ***

conda install ***

# 安装numpy库
pip install numpy
  1. 数据分析常用python库:
    1. Numpy,
      由于python没有自带的数组类型,如果用列表list处理数组和矩阵,运算效率很低。

Numpy专门用于数组和矩阵运算,它的高效主要因为两个因素:

(1) 用c语言编写,c语言接近系统底层,执行效率高

(2) numpy会安排一块地址连续的内存空间,内存寻址效率高

pip install numpy # 下载并安装numpy
conda install numpy # 同上

import numpy as np               # 命名numpy为np
a = np.array([2,0,1,5])          # 创建数组
print(a)                         # 输出a
print(a[:3])                     # 对a切片,输出前三个元素
print(a.min())                   # 输出a中的最小元素
a.sort()                         # 对a的元素进行排序
b = np.array([[1,2,3],[4,5,6]])  # 创建二维数组
print(b*b)                       # 计算数组的元素平方   
2. SciPy,
  其实numpy的数组运算还不是真正的矩阵运算,因为如上面的例子,两个numpy数组相乘,其实只是对应元素乘积。SciPy则默认矩阵的运算规则。

# 求解非线性方程组
# 2x1 - x2^2 = 1
# x1^2 - x2 = 2

from scipy.optimize import fsolve
def f(x):
  x1 = x[0]
  x2 = x[1]
  return [2*x1 - x2**2 - 1, x1**2 - x2 - 2]

result = fsolve(f, [1,1])
print(result)

# 定积分
from scipy import integrate
def g(x):
  return (1-x**2)**0.5      # 被积函数 (1-x^2)^0.5
  
pi_2, err = integrate.quad(g, -1, 1)   # pi_2是积分结果,err是误差
print(pi_2, pi_2*2) 
3. Matplotlib,

matplotlib是python流行的可视化库。该库擅长二维图形。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,1000)
y = np.sin(x) + 1
z = np.cos(x**2) + 1

plt.figure(figsize = (8,4))
plt.plot(x,y,label = '$\sin x+1$', color = 'red', linewidth = 2)
plt.plot(x, z, 'b--', label = '$\cos x^2+1$')
plt.xlabel('Time(s)')
plt.ylabel('volt')
plt.title('A Simple Example')
plt.ylim(0,2.2)
plt.legend()
plt.show()
4. pandas,

pandas的命名来自于面板数据panel data和数据分析data analysis的组合。

AQR Capital Management公司在2008年开发成功,2009年开源。

pandas是数据分析的常用工具,但是我们未必能就记住所有命令,一旦有不清楚的功能,可以搜索百度或查阅相关工具书。

# 安装pandas
pip install pandas
# 安装excel读写工具库
pip install xlrd xlwt

# 使用pandas
import numpy as np
import pandas as pd
s = pd.Series([1,2,3], index = ['a','b','c']) # 序列s
d = pd.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c']) # 数据框(表)d
d2 = pd.DataFrame(s)  # 转换s为数据框,保存到d2

d.head()
d.describe()

d.to_excel('data.xls')  # 保存为xls文件
pd.read_excel('data.xls') # 读取xls文件

d.to_csv('data.csv') # 保存为csv
pd.read_csv('data.csv') #读取csv

5. StatsModels,

statsmodel用于统计分析

# 进行时间序列的ADF平稳性检验
from statsmodels.tsa.stattools import adfuller as ADF # 导入ADF检验函数
import numpy as np
ADF(np.random.rand(100)) # 生成100个随机数数组,返回平稳性检验结果
6. scikit-learn,

简称sklearn,是机器学习的python库。大部分的机器学习任务都能用sklearn完成。

# 鸢尾花数据训练SVM模型
from sklearn import datasets # 导入sklearn自带数据集
iris = datasets.load_iris()  # 鸢尾花数据集调用.load_iris(),保存为iris
print(iris.data.shape)       # 查看数据集大小
print(iris['target_names'])
print(iris['feature_names'])

#(150, 4)
#['setosa' 'versicolor' 'virginica'] 
#['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']

from sklearn import svm      # 导入SVM随机向量机模型

clf = svm.LinearSVC()        # 调用SVM线性分类器
clf.fit(iris.data, iris.target)  # 训练模型
clf.predict([[5.0, 3.6, 1.3, 0.25]])  # 输入一组鸢尾花参数进行判断

#array([0])
7. keras

keras专门用于人工神经网络计算。现有的几个人工神经网络库有:pytorch,tensorflow,sklearn,theano

keras曾经与tensorflow合并,由于tensorflow库的模块调用比较混乱,导致了keras逐渐与tensorflow脱离依赖关系。

课后练习

测试上面代码,命名为:学号_姓名_班级.ipynb

标签:plt,04,Python,练习,print,python,np,import,numpy
From: https://www.cnblogs.com/dogfaraway/p/17263803.html

相关文章

  • 练习——计算0到100之间的奇数和偶数的和
    packagecom.q1u.struct;publicclassForDemo02{publicstaticvoidmain(String[]args){//练习1∶计算0到100之间的奇数和偶数的和intodd......
  • 练习——用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
    packagecom.q1u.struct;publicclassForDemo03{publicstaticvoidmain(String[]args){//练习2:用while或for循环输出1-1000之间能被5整除的数,并且......
  • 练习——打印九九乘法表
    packagecom.q1u.struct;/*1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=1......
  • 练习——标签的运用
    packagecom.q1u.struct;//标签的运用,类似于gotopublicclassLabelDemo{publicstaticvoidmain(String[]args){//打印101~150之间所有的质数......
  • 练习——打印三角形 5行
    packagecom.q1u.struct;publicclassTestDemo{publicstaticvoidmain(String[]args){//打印三角形5行for(inti=1;i<=5;i++){......
  • 在python的setup.py中如何指定多个extra-index-url?
    [本文出自天外归云的博客园]以下内容来自chatGPT的回答(正解,已验证)问题:在pythonsetup.py中如何指定多个extra-index-url?在`setup.py`文件中,我们可以使用`setuptools`......
  • Python毕业设计推荐
    今天给大家推荐4个基于python的毕业设计/课程设计1.网上商城系统这是一个基于python+vue开发的商城网站,平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的......
  • Python八大数据类型内置方法(不是详细讲解)
    目录一、字符串str二、列表list三、字典dict四、元组tuple五、集合set首先Python八大数据类型之间可以转换,但是有时候不是通用即需要特定条件才可以转换,不过日常开发工作......
  • python-01
    一:python2和python3的区别:1.python2中没有默认编码格式,如果遇到中英文的内容需要做声明coding=utf-8,python3已经默认系统中有coding=utf-8的编码格式print语句在python2......
  • python-03
    1、if判断语句1.单分支 :如果 。。。。否则就。。。。 if  +条件判断   如果满足条件就执行语句1     语句1 else:           否则就执行语......