Python

  • 一、基础知识
    • 1.import … as … 与from … import … 的区别
    • 2.Python 中 type、 dtype、 astype 用法区别
    • 3.字符串相关操作
    • 4.Rstudio如何快速重启
    • 5.获取工作路径
    • 6.py转pynb
    • 7.显示所有的数据
    • 8.whl包、tar包、tar.gz包的区别
    • 9.apply与进度条的结合
  • 二、jupyter小插件
    • 1.查看内存使用情况
    • 2.安装扩展插件
  • 三、Pandas
    • 1.数据查看
    • 2.转置
    • 3.删除
    • 4.排序
    • 5.删除重复值
    • 6.列名重命名
    • 7.行名重命名
    • 8.横向拼接
    • 9.纵向拼接(类似于sql中的join)
    • 10.数据转换
    • 11.dataframe表格打印输出对齐
    • 12.将一列中所有重复的值都设置为空白单元格
    • 13.填充空白单元格
    • 14.获取dateframe最后一行结果(不需要知道有多少行)
    • 15.统计基础功能
    • 16.数据分组
    • 17.重置索引
    • 18.返回某一列最大值对应索引
    • 19.dataframe的行数和列数
    • 20.读取与写入
    • 21.转化为dataframe
    • 22.merge模糊匹配
    • 23.将单元格中的多个数据拆分为多行数据
    • 24.dataframe转dict
  • 四、numpy
    • 1.在range中使用小数
    • 2.npy文件的创建和读取
    • 3.计算分位数
  • 五、matplotlib.pyplot
    • 1.设置画布大小
    • 2.中文正常显示
    • 3.多个子图
    • 4.折线图(最基础)
    • 5.散点图
    • 6.柱状图
    • 7.饼图
    • 8.改变线和点的颜色和形状
    • 9.添加横纵坐标标签
    • 10.设置文字说明
    • 11.坐标轴设置
    • 12.添加图例
    • 13.保存图片
  • 六、Docx
    • 1.页边距设置
    • 2.插入段落、文字、表格、分页等
    • 3.行转列
    • 4.设置标题中文字体
    • 5.表格设置
    • 6.段落设置
    • 7.字体设置
    • 8.输出成docx
  • 七、sklearn
    • 1.归一化与反归一化
  • 八、tensorflow
  • 九、keras
  • 十、一些好用的包
    • 1.copy
    • 2.BytesIO
    • 3.robjects

一、基础知识

1.import … as … 与from … import … 的区别

  • import是python提供的用于导入模块的机制,导入是的整个模块的内容
  • from import 用于导入一个模块中的某一个部分,比如一个函数或者一个类等。

2.Python 中 type、 dtype、 astype 用法区别

函数 说明 返回参数类型
type(object) 返回object对象的类型 包括数据类型(int、float)和数据结构类型(list、dict、numpy.ndarray)
arr.dtype 返回数组中的数据元素类型 如:int64、float64
arr.astype(dtype) 修改数组中数据元素类型 返回参数类型由dtype决定
  • type()属于python内置函数,可返回参数对象的数据类型或数据结构类型
  • dtype出自numpy.dtype,用于查看数组的数据元素类型时需用 arr.dtype 属性的形式
  • astype出自numpy.chararray.astype,改变arr中所有数据元素的类型为指定的dtype格式,返回一个修改后的arr。

3.字符串相关操作

  1. 字符串切割
str[1:5]
  1. 字符串拼接
','.join(str) # 也可以用于列表、元组、字典

4.Rstudio如何快速重启

ctrl/cmd + shift + F10

5.获取工作路径

import os
os.getcwd() # 获得当前工作目录
os.chdir('') # 更改路径,''里面为更改的路径

6.py转pynb

%load file_name.py

7.显示所有的数据

  在用jupyter时我们有时候需要查看所有的数据,这时候需要我们把所有的行和列都输出。

from IPython.display import display
pd.set_option('display.max_columns', None) # 输出所有的列
pd.set_option('display.max_rows', None) # 输出所有的行

8.whl包、tar包、tar.gz包的区别

whl包、tar包、tar.gz包的区别及安装方法

9.apply与进度条的结合

from tqdm import tqdm
tqdm.pandas(desc = 'apply')
df = data.progress_apply(function,axis = 1)

二、jupyter小插件

1.查看内存使用情况

# 安装jupyter-resource-usage
## pip安装与conda安装
pip install jupyter-resource-usage
conda install -c conda-forge jupyter-resource-usage
## 查看jupyter book的版本
jupyter notebook --version 
## 若jupyter notebook版本低于5.3,需要手动使其生效
jupyter serverextension enable --py jupyter-resource-usage --sys-prefix
jupyter nbextension install --py jupyter-resource-usage --sys-prefix
jupyter nbextension enable --py jupyter-resource-usage --sys-prefix

2.安装扩展插件

# 安装Jupyter扩展插件
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

Python自我学习笔记-编程知识网

三、Pandas

import pandas as pd 
from pandas.core.frame import DataFrame

pandas 是python的数据分析库,提供快速、灵活和富有表现力的数据结构,用于数据挖掘和数据分析,同时也提供数据清洗功能,与numpy、matplotlib并称,成为数据分析必学的三个库。Pandas 的主要功能如下。
Pandas 数据结构—DataFrame。DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共同用一个索引)。DataFrame包括index和values。
Python自我学习笔记-编程知识网

1.数据查看

df.describe()

2.转置

df.T

3.删除

df.drop([columns],axis = 1,inplace = False)
  • axis = 1 删除列,axis = 0删除行
  • inplace = True删除后改变原数据,False生成新数据,不改变原数据

4.排序

  1. 按值排序
df.sort_values(ascending=False, by = columns, axis=0)
  • ascending = False:降序排列,True:升序排列
  • axis=0按行排序,1按列排序
  1. 按索引排序
df.sort_index()
  1. 添加排名
df['rank'] = df[column].rank(method='first', ascending=False).astype('int')
  • [method]:‘first’当遇到重复的排名,第一次出现的排名靠前
  • [ascending]:False为逆序排列,True为正序排列

5.删除重复值

df.drop_duplicates()

6.列名重命名

  1. 查看所有列名
df.columns
  1. 列名重命名
df.rename(columns = {'':''}, inplace = True)
  • [inplace]:True修改原数据;False生成新数据,不改变原数据

7.行名重命名

  1. 查看所有行名
df.index
  1. 列名重命名
df.rename(index= {'':''}, inplace = True)
  • [inplace]:True修改原数据;False生成新数据,不改变原数据

8.横向拼接

pd.concat([a,b],axis = 0)

9.纵向拼接(类似于sql中的join)

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False)
  • how:用什么方式进行连接,inner/left/right/outer
  • on:连接的键,若两个dataframe键名相同,则用on,不同用left_on/right_on
  • left_index/right_index:用索引当做连接键,此时为True

10.数据转换

数据转换一般用map和apply,map主要用于series的转换,apply是series和dataframe都可以。

df.apply(lambda x:function(x),axis =1)

11.dataframe表格打印输出对齐

  1. print输出
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.width', 180)  # 设置打印宽度(**重要**)
  1. jupyterNoterbook输出
from IPython.display import display
display(df1)
display(df2)

12.将一列中所有重复的值都设置为空白单元格

import numpy as np
for col in df.columns:df[col][df[col].duplicated()] = np.nan # 也可以用其他想替换的字符,此处为空

13.填充空白单元格

  1. 判断是否有空值
df[df.isnull()==True].count()
  1. 填充空白单元格
df.fillna(0) #可以替换成任何想要的字符

14.获取dateframe最后一行结果(不需要知道有多少行)

df.values[-1]

或者

df.iloc[-1]

15.统计基础功能

df.count()
df.min()
df.mean()
df.sum()
df.median()
df.cumsum() # 累计和
df.cumprod() # 累计积

16.数据分组

df.groupby(df[columns]).agg({'':''})

17.重置索引

df.reset_index()

18.返回某一列最大值对应索引

df[column].idxmax()

19.dataframe的行数和列数

df.shape[0] # 返回行数
df.shape[1] # 返回列数

20.读取与写入

df.to_excel # 写入到 excel 文件
pd.read_excel # 读取 excel 文件

21.转化为dataframe

df = pd.DataFrame(data)

22.merge模糊匹配

Pandas实现模糊匹配Merge数据的方法

23.将单元格中的多个数据拆分为多行数据

将单元格中的多个数据拆分为多行数据

24.dataframe转dict

data_dict = dict(zip(data['key'],data['value']))

四、numpy

1.在range中使用小数

import numpy as np
np.arange(0,1,0.1)

2.npy文件的创建和读取

np.save(r'df.npy',df) # 创建npy文件
df= np.load(r'df.npy', allow_pickle=True) # 读取npy文件

3.计算分位数

import numpy as np
np.percentile(data, (25, 50, 75), interpolation='midpoint')

五、matplotlib.pyplot

1.设置画布大小

plt.figure(figsize=(10, 5))

2.中文正常显示

plt.rcParams['font.family'] = 'SimSun' # 解决中文显示问题
plt.rcParams['axes.unicode_minus'] = False # 解决中文显示问题

3.多个子图

plt.subplot(121) # 1行2列,第1个
plt.subplot(122) # 1行2列,第2个

4.折线图(最基础)

plt.plot(x,y)
plt.show()

5.散点图

plt.plot(x,y,'o')
plt.show()

若要与折线图叠加

plt.plot(x,y)
plt.plot(x,y,'o')
plt.show()

6.柱状图

plt.bar(x, y, [label], [align], [alpha], [color], [width],[bottom])

参数说明:
[x, y]:绘制柱状图的数据
[label]:字符串,柱状图的图例名称
[align]:字符串,指定x轴上对其方式,‘center’居中,‘edge’边缘
[alpha]:可用0.8,透明度
[color]:柱状图的填充色,可用RGB
[width]:标识柱状图的宽度,取值在0-1之间,默认为0.8
[bottom]:柱状图底部离横轴的距离,可用于制作堆叠柱状图

7.饼图

plt.pie(x, [explode], [labels], [colors], [autopct], [pctdistance],  [labeldistance], [startangle], [radius], [textprops], **kwargs)

参数说明:
x:数组,绘制饼状图的数据。 
[explode]:默认值为None的可选参数。若非None,则是和x相同长度的数组,用来指定每部分的离心偏移量。
[labels]:列表,指定每个饼块的名称,默认值None,为可选参数。 
[colors]:特定字符或数组,指定饼图的颜色,默认值None,为可选参数。
[autopct]:特定字符,指定饼图中数据标签的显示方式,默认值None,为可选参数。
[pctdistance]:浮点数,指定显示比例距离圆心的距离。默认值0.6,为可选参数。
[labeldistance]:浮点数,指定每个扇形对应标签与圆心的距离,默认值1.1,为可选参数。
[startangle]:浮点数,指定从x轴逆时针旋转饼图的开始角度,默认值None,为可选参数。
[radius]:浮点数,指定饼图的半径,默认值1,为可选参数。
[textprops]:字典,设置文本对象的字典参数,默认值None,为可选参数。

8.改变线和点的颜色和形状

plt.plot(x,y,alpha1,alpha2,alpha3,...[alphan])

Alpha:参数

  • 可以是颜色(甚至可以使用RGB)
    链接: RGB颜色
  • 可以是线型
  • 实线 – 虚线 -. 形式即为-. : 细小的虚线
  • 可以是点型
    s–方形 h–六角形 H–六角形 *–*形 ±-加号 x–x形 d–菱形 D–菱形 p–五角形

9.添加横纵坐标标签

plt.xticks([index + bar_width for index in x], df[column], size)
plt.yticks(size)

10.设置文字说明

plt.text(x, y, [string], [fontsize], [va], [ha])

参数说明:
[x, y]:表示坐标位置
[string]:表示说明文字
[fontsize]:表示字体大小
[va]:垂直对齐方式 ,参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]
[ha]:水平对齐方式 ,参数:[‘center’|‘right’|‘left’]

11.坐标轴设置

%matplotlib inline 

这是一个魔法函数(Magic Functions)。 官方给出的定义是:IPython有一组预先定义好的所谓的魔法函数(Magic Functions),你可以通过命令行的语法形式来访问它们。 使用%matplotlib命令可以将matplotlib的图表直接嵌入到Notebook之中,或者使用指定的界面库显示图表,它有一个参数指定matplotlib图表的显示方式。 inline表示将图表嵌入到Notebook中。

  1. 坐标轴负号正常显示
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['SimHei']     # 显示中文
# 为了坐标轴负号正常显示。matplotlib默认不支持中文,设置中文字体后,负号会显示异常。需要手动将坐标轴负号设为False才能正常显示负号。
matplotlib.rcParams['axes.unicode_minus'] = False
# 添加坐标轴
plt.xlabel('')
plt.ylabel('', [fontsize], [fontname])
  1. 坐标轴的区间
plt.xlim(x_min,x_max)
plt.ylim(y_min,y_max)

12.添加图例

plt.legend([loc], [fontsize], [ncol])

参数说明:
[loc]:图例在画布中的位置
[ncol]:设置图例分为n列展示
转载:python – matplotlib.legend()函数用法解析

13.保存图片

plt.savefig(path, format='jpg', dpi=3000, bbox_inches='tight') 

参数说明:
[path]:图片保存地址,可以保存在本地,也可以保存到BytesIO
[dpi]:设置图片像素,越高像素越大
[format]:设置保存图片类型。比如“png”,“pdf”,“svg”等
[bbox_inches]:只有图形给定部分会被保存。设置为“tight”用以恰当的匹配所保存的图形。

六、Docx

from docx import Document

1.页边距设置

doc = Docunment()
doc.sections[0].left_margin = Inches(1)
doc.sections[0].right_margin = Inches(1)

2.插入段落、文字、表格、分页等

  1. 插入段落
paragraph = doc.add_paragraph()
  1. 段落中增加文字
run = paragraph.add_run
  1. 插入表格
table = doc.add_table(nrow, ncol)
  1. 插入图片
img = run.add_picturn()
  1. 插入分页
doc.add_page_break()

3.行转列

from docx.enum.section import WD_ORIENT
document = Document()
section = document.sections[0]
new_width, new_height = section.page_height, section.page_width
section.orientation = WD_ORIENT.LANDSCAPE
section.page_width = new_width
section.page_height = new_height

4.设置标题中文字体

from docx.oxml.ns import qn
from docx.shared import Pt
title = document.add_heading(level=level)
title_run = title.add_run(text)
title_run.font.size = Pt(size) # 设置字体大小,小四对应值为12
title_run.font.name = font # 设置字体类型属性
title_run.element.rPr.rFonts.set(qn('w:eastAsia'), font)

5.表格设置

  1. 表格类型
table.style = 'Table Grid'
  1. 表格设置自动调整列宽(默认为真)
table.autofit = True
  1. 表居中
table.alignment = WD_TABLE_ALIGNMENT.CENTER
  1. 获取行列对象
row = table.rows[0] # 获取行对象
col = table.columns[0] # 获取列对象
  1. 获取表格某一行某一列的单元格对象列表
row_cells = table.row_cells(0) # 获取表格一行的单元格对象列表
col_cells = table.column_cells(0) # 获取一列的单元格对象列表
  1. 设置背景颜色
shading_elm=parse_xml(r'<w:shd {} w : fill = "4682B4"/>'.format(nsdecls('w')))
cell._tc.get_or_add_tcPr().append(shading_elm)
  1. 单元格对齐
# 垂直对齐方式:'TOP'-0, 'CENTER'-1, 'BOTTOM'-3, 'BOTH'-101
# 水平对齐方式:'LEFT'-0, 'CENTER'-1, 'RIGHT'-2
table1.cell(0, 0).vertical_alignment = WD_ALIGN_VERTICAL.TOP #垂直对齐
table1.cell(0,0).paragraphs[0].alignment=WD_PARAGRAPH_ALIGNMENT.CENTER
  1. 合并单元格
cell_new = table1.cell(2, 0).merge(table1.cell(2, 1)).merge(table1.cell(2, 2))

6.段落设置

  1. 居中
paragraph.paragraph_format.alignment =WD_ALIGN_PARAGRAPH.CENTER
  1. 段前段后间距
gs.paragraph_format.space_before = Pt(24) # 段前间距
gs.paragraph_format.space_after = Pt(24) # 段后间距
  1. 行间距
gs.paragraph_format.line_spacing = 1.5
  1. 首行缩进
gs.paragraph_format.first_line_indent = Pt(24)

7.字体设置

  1. 字体格式
for run in gs.runs:run.font.name = 'Times New Roman'  # 设置 run 中的西文字体  run.font.element.rPr.rFonts.set(qn('w:eastAsia'), 'YaHei')run.font.size = Pt(30)run.font.color.rgb = RGBColor(51, 102, 153)run.font.bold = Truerun.wordWrap = 'CJK' # 自动换行

8.输出成docx

doc.save(r'')

七、sklearn

1.归一化与反归一化

from sklearn.preprocessing import MinMaxScaler
min_max_scaler = MinMaxScaler()# 归一化
train_scaler = min_max_scaler.fit_transform(train)# 反归一化
predict = min_max_scaler.inverse_transform(predict_scaler)

八、tensorflow

九、keras

十、一些好用的包

1.copy

import copy
df1 = copy.deepcopy(df) # 对df1的修改不会影响df的值

2.BytesIO

from io import BytesIO
# 可以在内存中读写bytes,生成的图片可以不用导出到本地
jpg_path = BytesIO()  # 在内存中取一个位置用于存放svg文件

3.robjects

import rpy2.robjects as robjects
# 可以在python中调用R语言
robjects.r("r_script") 

[r_script]:R代码

robjects.r.source("file.r")

[file.r]:R脚本文件