说在前面

在开发之前, 要去python库官网上查看是否有帮助的库。 结合百度和pypi.org网站直接寻找需要的库。

库安装方法:1pip安装 2.文件安装:UCI页面需要翻墙  https://www.lfd.uci.edu/~gohlke/pythonlibs 或者conda提供的那些网站也行。

文件安装:下载UCI、whl文件之后,又要使用 pip install 文件来安装  放到lib文件夹

vscode特殊:通常把要处理的文件放在一个工作文件下,方便输出文件位置和调用。

一、文件操作

1.1 目录库 os: import os

os.path :用于获取文件的基本信息

import os
输出文件的绝对路径:os.path.abspath(path);
file_path = os.path.abspath('test.py')
print(file_path)
>>> c:\Users\YHW\Desktop\test_`1也可以直接存储文件路径:右键文件,属性,查看完整地址复制过来
file_path = "C:\\Users\\YHW\\Desktop\\matlabprg"
python中转义字符在自己输入时\\需要成对输入,不然会有报错,或者/反斜杠表示替代文件存在标志:os.path.exists(path)
如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。
print(os.path.exists('test.py'))
>>> True获取工作文件夹路径:
print(os.getcwd())
c:\Users\YHW\Desktop\test_`1合并文件目录路径和文件名:
file_path = os.path.join( os.getcwd(),"corpus_POS.txt" ) #据编译器决定是否添加/分隔
print(file_path)
c:\Users\YHW\Desktop\test_`1\corpus_POS.txtLinux系统下常见,把path中包含的"~"和"~user"转换成用户目录:
os.path.expanduser("路径")
根据环境变量的值替换path中包含的"$name"和"${name}":
os.path.expandvars("路径")文件路径切分成路径和文件名:
os.path.spilt("路径")
spilt并非os下才能使用!
返回一个元组,进行读取即可

修改当前工作文件夹目录:

查看当前工作目录
file = os.getcwd();
file = print("当前工作目录为 %s" % file)
>>> c:\Users\YHW\Desktop\test_`1修改当前工作目录
os.chdir( "c:\Users\YHW\Desktop\matlabprg" )

返回某个文件夹中包含的文件名字的列表:

path = "c:\\Users\\YHW\\Desktop\\test_`1"
dirs = os.listdir( path )
for file in dirs:print (file)
>>>
.vscode
1_tutorial_1or2hours.ipynb
animalphoto
dvsc.ipynb
animal_model.h5
test.py

创建文件夹:

path = "路径"
#一般与文件是否存在结合
os.path.exists(path)
if(False):os.mkdir( path, 0755 )#0755mode设置权限,查表

进程管理:

进程管理 python文件打开其他文件或者软件的操作 调用其他程序
import os
os.system("文件路径")
还有许多其他的函数
os.cpu_count() CPU数量
os.getlogin() 获得用户登录名
print(os.getlogin())
print(os.path.abspath('kalman.py'))

csv文件:二维列表     csv格式:逗号分割标准格式,类似表格

1.2 文件IO库

——除了python自带的open()函数以外,其他的库都会提供自己的文件读取流也可以。

pandas打开文件
import pandas as pd
pd.read_excel("Excel文件路径名") 用pandas可以打开各种文件numpy打开文件(仅npk:用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。)
import numpy as np
a = np.array([1,2,3,4,5])
np.save('outfile.npy',a)
b = np.load('outfile.npy')
print (b)也可以用open
file_txt = open("路径/文件名","r", encoding="utf-8").read()
参数:文件位置、打开选项(读写选择),编码方式
file_txt.close()file = "c:\\Users\\YHW\\Desktop\\test_`1"
f_test = open(file, "r", encoding="UTF-8")
f_test = open(FILENAME, "r", encoding="UTF-8")realine读入一行
f_test.readline()
read读取指定的字符大小
txt =f_test.read()
readlines读取所有行,每一行为一个字符串,所有字符串形成列表
list=[]
list = f_test.readlines()写一样
f.write(string)
f.writelines(list)
f.seek(参数)更改文件位置指针的位置

文本数据的一个常规操作:for把每一行读进来,把每一行的末尾\n换成空格,然后每一行用逗号分割,用readlines()效果一样


FILENAME = "machinelearning_add"
fo = open(FILENAME, encoding="UTF-8")
ls=[]
for line in fo:line = line.replace("\n"," ")ls.append(line.split(","))
fo.close()
ang=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
for item in ang:print(ls[item])

输出结果如下:


二、数组Numpy库

2.1 创建数组,所有科学工具的基本: import numpy as np

创建数组,一维二维三维取决于内部中括号个数
a = np.array([[1,2,2],[2,5,7],[7,83,1]], dype = int)
dytpe选择内部的数据类型,甚至可以表示复数:complex64等
print (a)
>>>[[ 1  2  2][ 2  5  7][ 7 83  1]]列表转数组:
a = [1,2,3,4,5]
ma = np.array(a)注意区分“数组”和“矩阵”的区别,主要取决于数组类型和维度,下面的shape参数介绍结构体数组:numpy 的数值类型实际上是 dtype 对象的实例,可以使用dype当做初始化函数
student = np.dtype([('age', 'int8'), ('marks', 'float')])
a = np.array([(21, 50),(18, 75)], dtype = student)
print(a)创建数组,有序数组:arrange()
a = np.arange(5)
>>> [0 1 2 3 4]0,1元素数组:
numpy.zeros(shape, dtype = float, order = 'C') 默认为浮点数,order排序方式
numpy.ones(shape, dtype = None, order = 'C')
x = np.ones([2,2], dtype = int)
y = np.zeros((5,5), dtype = int)
自定义数据类型
z = np.zeros((2,2), dtype = [('x', 'int8'), ('y', 'float')])
print(z)
z是二维矩阵,每一个元素是一个int和float组成的一个小元组元素。
>>> [[(0, 0.) (0, 0.)][(0, 0.) (0, 0.)]]

2.2 创建矩阵:

import numpy as np

import numpy.matlib

零矩阵和1矩阵
numpy.matlib.zeros(2,3)
numpy.matlib.ones(3,3)单位矩阵:
numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零。
print (np.matlib.eye(3, dtype =  float))
>>> [[1. 0. 0.][0. 1. 0.][0. 0. 1.]]随机矩阵:
np.matlib.rand(3,3)

2.3 数组工具:

数组的rank秩:
ndarray.ndim调整大小,重构数据大小reshape,重构大小必须满足!“列表转数组 数组行列乘积个数一样”两个条件!
a = np.arange(5)
b = a.reshape(1,5)
c = a.reshape(5,1)d = np.array([[1,2],[4,5],[6,89]]).reshape(3,2)
f1 = np.arange(12).reshape(3,4)
f2 = np.arange(12).reshape(2,6)
>>> a = [0 1 2 3 4] [[0 1 2 3 4]][[0][1][2][3][4]]d = [[ 1  2][ 4  5][ 6 89]]f1 = [[ 0  1  2  3][ 4  5  6  7][ 8  9 10 11]]f2 = [[ 0  1  2  3  4  5][ 6  7  8  9 10 11]]数组格式,数组维度查看:shape
print (e.shape)
>>> (3, 2) 三行两列
a = np.arange(5)
a.shape
>>> (5,) 列表型数组,和列表类似,但是不属于矩阵,无法参与矩阵运算其他类型转数组(列表转数组、元组转数组等)
a = range(0,5,1)
a = np.asarray(a)
print (a)
>>> [0 1 2 3 4]

2.4 数组的索引迭代、展平和组合:

切片索引与列表一样
a = np.arange(10)
从索引 2 开始到索引 7 停止,间隔为 2
b = a[2:7:2]
双列索引
c = c[0:10, 2:6]
分号左边是行索引,从0开始到10-1=9行;右边列索引,从第2列开始到第5列
print(b,c)单个索引
f = np.arange(12).reshape(3,4)
f = f.reshape(2,6)
f[1][3]=522
>>> [[  0   1   2   3   4   5][  6   7   8 522  10  11]]访问数组中的每一个元素:数组迭代循环
nditer()有可选参数
for x in np.nditer(a):print (x, end=", " )数组展平:展开数组,两个函数拷贝与不拷贝的关系
ndarray.flatten()
ndarray.ravel()找到列表中最大值的索引:最小值也是一样(注意从0开始索引)
a = [1,2,3,4,5]
ma = np.array(a)
a.index(max(ma))找到数组中的最大值:
max = ma.max()找到最大值对应的索引值(序号):
默认axis是对整个数组索引,输入axis就是按axis轴进行最大值的索引
max = np.argmax(ma, axis = )转置:
b = 某个二维数组.T

2.5 数组计算、矩阵计算:

运算符直接使用:a*b  a+b a-b的结果就是 a 与 b 数组对应位相乘。(按位乘)

触发广播机制,如果两个数组维度不同,就把维度低的补齐到可以按位乘
a = np.array([[ 0, 0, 0],[10,10,10],[20,20,20],[30,30,30]])
b = np.array([1,2,3])
print(a * b)
>>> [[ 0  0  0][10 20 30][20 40 60][30 60 90]]

2.6 多维数组计算:通过np提供的方法才能进行(与矩阵的运算方法一样)

矩阵乘法:dot()函数。矩阵乘法参考线性代数
a = [[1, 0], [0, 1]]
b = [[4, 1], [2, 2]]
c=np.dot(a, b)
>>> [[4 1][2 2]]a = [[1, 0], [0, 1]]
b = [[4], [22]]
c=np.dot(a, b)
print(c)
>>> [[ 4][22]]加减乘除:add(a,b),subtract(a,b),dot(a, b),divide(a,b)矩阵点积:对应位置元素相乘
a = np.array([[1,2],[3,4]])
b = np.array([[11,12],[13,14]])
print (np.vdot(a,b))逆矩阵:
x = np.array([[1,2],[3,4]])
y = np.linalg.inv(x)
>>> [[-2.   1. ][ 1.5 -0.5]]

2.7 其他计算函数:

将整形转换为其他进制:
print ('13 和 17 的二进制形式:')
a,b = 13,17
print (bin(a), bin(b))
print ('13 和 17 的位与:')
print (np.bitwise_and(13, 17))>>> 13 和 17 的二进制形式:
0b1101 0b1000113 和 17 的位与:
1bitwise_or()按位或
invert()取反
left_shift() 左移 同右移统计函数:
numpy.mean(ndarray) 平均数
numpy.average(ndarray) 加权平均数
np.std([1,2,3,4]) 标准差
np.var([1,2,3,4]) 方差

​​​​​​​三、绘图库matlpotlib

import numpy as np
from matplotlib import pyplot as plt x = np.arange(1,11)
y =  2  * x +  5
z = 3 * x**2 + 2
plt.title("This is title don't support chinese")
plt.xlabel("x axis ")
plt.ylabel("y axis ")
plt.plot(x,y,"ob")
plt.plot(x,z,"-g")
绘图命令
plt.show()

通过plot后面的选项可以设置颜色和线段类型,下图


四、 python其他常见库:

4.1 random库、时间函数库:

#random库的补充
import numpy as np #random的随机库生成数组形式的随机
import random as rd
#1.设置了相同随机数种子的随机数,会产生相同的随机数
#如果不设置种子,那么就会产生随机的
rd.seed(10)
a= rd.random()
rd.seed(10)
b = rd.random()
c= rd.random()
print(a, b, c)
#2.各个函数
rd.randint(1,5)#整数随机
rd.uniform(3,5)#产生a~b之间的随机float数
rd.shuffle([1,4,5,12,8])#随机排序#时间函数,包括获取时间,性能优化等
import time
time.perf_counter()#复数
z = 3.2 + 2.3j
print(z.real, z.imag)
  1. )4.2 exe可编译python程序打包库:pyinstaller

pip install pyinstaller

常用的指令:

-F name,-onefile 产生单个的可执行文件

-D dirname,--onedir 产生一个目录(包含多个文件)作为可执行程序

-i <xxx.ico> 产生的文件用xxx图片作为图标

命令行里使用  pyinstaller -i <image_name.ico> -F file_name.py

Python学习指南——1.常用库说明相关推荐

  1. python学习笔记(常用库)

    一.numpy 二.pandas 2.3 series结构 基本操作 import pandas as pdfandango = pd.read_csv('E:\\唐宇迪机器学习\Python库代码( ...

  2. 2019年python课本_2019年Python学习指南

    Python是一种用LISP和Java编译的语言,JPthon提供了访问Java图像用户界面的途径,可以让他使用可移植的GUI演示和可移植的http/ftp/html库,因此非常适合作为人工智能语言. ...

  3. 简明GISer Python学习指南

    简明GISer Python学习指南 缘起 GISer学Python Python简介 学什么 学习资源 视频 图书 基础入门 进阶 高级(专业) 开发库 webGIS开发 遥感影像处理 爬虫 机器学 ...

  4. python 学习指南_Python类型检查终极指南

    python 学习指南 In this guide, you will get a look into Python type checking. Traditionally, types have ...

  5. Python学习笔记:常用第三方模块3

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. Python学习笔记:常用第三方模块(1)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:常用内建模块6 (urllib)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. python学习指南—Python 进阶(Python Cookbook)

    系列文章目录 Python数据科学家养成计划(Python学习指南) 文章目录 系列文章目录 前言 一.数据结构和算法 1. 将序列分解为单独的变量 2. 从任意长度的可迭代对象中分解元素 3. 保留 ...

  9. python 学习指南_Python学习指南

    原标题:Python学习指南 <Python数据分析 第2版(影印版)> (美)韦斯·麦金尼/ISBN:9787564175191/东南大学出版社/定价:¥99 本书由Pythonpand ...

  10. pygame是python的一个库吗,python学习pygame,,基本库导入impor

    python学习pygame,,基本库导入impor 基本库导入 import pygame import sys from pygame.locals import * 初始化 pygame.ini ...

最新文章

  1. Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
  2. [LeetCode] [C++] 第一轮刷题总结(持续更新~~~)
  3. 经过研究发现。c++里面的const意思是说,我是const,成员也是const!!!
  4. 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员赋值及源码分析 )
  5. Python 解释器
  6. mysql多实例复制,Mysql实例使用Rotate Master实现MySQL 多主复制的实现方法
  7. 什么是指利用计算机和现代,现代计算机一般指什么计算机?
  8. 笨办法学 Linux 0~3
  9. demo:flask进行模型部署 | ros接收点云流 | Web接收三路视频流及局部刷新——>显示效果展示
  10. C++中的STL和MFC
  11. eclipse启动优化文章集合
  12. [js]js设计模式-构造函数模式
  13. CodeGear 出品 Delphi for PHP
  14. 练习1,从文件到数据库
  15. C语言自学之路二(C语言数据类型)
  16. 服务器数据恢复成功案例(磁盘阵列恢复)
  17. Fiddler下载微信视频号中的视频最简教程
  18. elasticsearch-analysis-ik中文分词插件安装及配置Ik自定义词典+拼音分词
  19. 区块链简单实现之p2p网络多节点同步
  20. 前阿里大佬干货分享,0基础小白,转行必看Python学习笔记(七)

热门文章

  1. 2万字用Python探索金庸小说世界
  2. 税控服务器管理系统已签名未上传,增值税发票管理系统升级后发票上传失败、勾选平台插件设置、勾选签名问题、勾选规则等热点问题...
  3. c语言代码 txt下载,贪吃蛇C语言代码.txt
  4. 计算机无法创建新文件夹,无法创建文件,小编教你无法新建文件夹怎么办
  5. 力软快速开发平台源码7.0.6
  6. 统计学习基础(第二版)——引言
  7. matlab电气教程下载,Matlab 2020b介绍及下载安装步骤
  8. 遥感大辞典_学习遥感必读的十本专业书
  9. sql面试题及答案总结
  10. mysql 关联字段 查询_Mysql关联查询总结