numpy-PDL-Pandas

NumPy是一个开源的Python科学计算基础库
提供了一个强大的N维数组对象nadrray
广播功能函数(用来在数组之间进行计算)
整合C/C++/Fortran代码的工具
线性代数、傅里叶变换、随机数生成等功能
    Numpy是SciPy、Pandas等数据处理或科学计算库的基础
1.N维数组对象:ndarray
数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
设置专门的数组对象,经过优化,可以提升这类应用的运算速度
    ndarray是一个多维数组对象,由两部分构成:
实际的数据
描述这些数据的元数据(数据维度、数据类型等)
    ndarray数组一般要求所有元素类型相同,数组下标从0开始
np.array()生成一个ndarray数组
np.array()输出成[]形式,元素由空格分割
轴(axis):保存数据的维度
秩(rank):轴的数量
    ndarray对象的属性
.ndim         秩,即轴的数量或维度的数量
.shape        ndarray对象的尺度,对于矩阵,n行m列
.size         ndarray对象元素的个数,相当于.shape中n*m的秩
.dtype        ndarray对象的元素类型
.itemsize     ndarray对象中每个元素的大小,以字节为单位
    ndarray的元素类型
bool      布尔类型,True或False
intc      与C语言中的int类型一致,一般是int32或int64
intp      用于索引的整数,与C语言中ssize_t一致,int32或int64
int8      字节长度的整数,取值:[-128, 127]
int16     16位长度的整数,取值:[-32768, 32767]
int32     32位长度的整数,取值:[-2^31, 2^31-1]
int64     64位长度的整数,取值:[-2^63, 2^63-1]
uint8     8位无符号整数,取值:[0, 255]
uint16    16位无符号整数,取值:[0, 65535]
uint32    32位无符号整数,取值:[0, 2^32-1]
uint64    64位无符号整数,取值:[0, 2^64-1]
float16   16位半精度浮点数:1位符号位,5位指数,10位尾数
float32   32位半精度浮点数:1位符号位,8位指数,23位尾数
float64   64位半精度浮点数:1位符号位,11位指数,52位尾数
complex64 复数类型,实部和虚部都是32位浮点数
complex128 复数类型,实部和虚部都是64位浮点数
    ndarray数组的创建方法
(1)从Python中的列表、元组等类型创建ndarray数组
(2)使用NumPy中函数创建ndarray数组,如:arange,ones,zeros等(ones,zeros,eyes生成数组的元素都是浮点数类型,arange生成为整数类型)
np.arange(n)         类似range()函数,返回ndarray类型,元素从0到n-1
np.ones(shape)       根据shape生成一个全1数组,shape是元组类型
np.zeros(shape)      根据shape生成一个全0数组,shape是元组类型
np.full(shape, val)  根据shape生成一个数组,每个元素值都是val
np.eye(n)            创建一个正方的n*n单位矩阵,对角线为1,其余为0
np.ones_like(a)      根据数组a的形状生成一个全1数组
np.zeros_like(a)     根据数组a的形状生成一个全0数组
np.full_like(a, val) 根据数组a的形状生成一个数组,每个元素值都是val
(3)使用NumPy中其他函数创建ndarray数组
np.linspace()        根据起止数据等间距地填充数据,形成数组
a = np.linspace(1, 10, 4, dtype=np.int32)  # 1为起始位置,10为终止位置,4表示4个元素
b = np.linspace(1, 10, 4, endpoint=False)  # endpoint代表终止元素是否作为最后一个元素
np.concatenate()     将两个或多个数组合并一个新的数组
    ndarray数组的变换:对于创建后的ndarray数组,可以对其进行维度变换和元素类型变换
.reshape(shape)       不改变数组元素,返回一个shape形状的数组,原数组不变
.resize(shape)        与.reshape()功能一致,但修改原数组
.swapaxes(ax1, ax2)   将数组n个维度中两个维度进行调换
.flattten()           对数组进行降维,返回折叠后的一维数组,原数组不变
.astype()             创建新的数组(原始数据的一个拷贝),即使两个类型一致
.tolist()             ndarray数组向列表的转换
    ndarray数组的索引和切片:
一维数组的索引和切片:与Python的列表类似(a[1 : 4 : 2]  # 起始编号:终止编号(不含):步长)
多维数组的索引:
a = np.arange(24).reshape((2, 3, 4))
a[1, 2, 3]   --> 23
a[0, 1, 2]   --> 6
a[-1, -2, -3]   -->17
    ndarray数组的运算:
数组与标量之间的运算:数组与标量之间的运算作用于数组的每一个元素
NumPy一元函数:(对ndarray中的数据执行元素级运算的函数)
np.abs(x) np.fabs(x)          计算数组各元素的绝对值
np.sqrt(x)              计算数组各元素的平方根
np.square(x)                  计算数组各元素的平方
np.log(x) np.log10(x) np.log2(x)  计算数组各元素的自然对数、10底对数和2底对数
np.ceil(x) np.floor(x)        计算数组各元素的ceiling值或floor值
np.rint(x)                    计算数组各元素的四舍五入值
np.modf(x)                    将数组各元素的小数和整数部分以两个独立数组形式返回
np.cos(x) np.cosh(x)
np.sin(x) np.sinh(x)      计算数组各元素的普通型和双曲型三角函数
np.tan(x) np.tanh(x)
np.exp(x)      计算数组各元素的指数值
np.sign(x)      计算数组各元素的符号值,1(+),0,-1(-)
NumPy二元函数
+ - * / **                    两个数组各元素进行对应计算
np.maximum(x,y) np.fmax()     元素级的最大值/最小值计算
np.minimum(x,y) np.fmin()
np.mod(x,y)                   元素级的模运算
np.copysign(x,y)              将数组y中各元素值的符号赋值给数组x对应元素
> < >= <= == !=               算数比较,产生布尔型数组
2.CSV文件:(Comma-Separated Value,逗号分隔值)是一种常见的文件格式,用来存储批量数据(只能有效存储一维和二维数组)(np.savetxt()、np.loadtxt()只能有效存取一维和二维数组)
     np.savetxt(frame, array, fmt='%.18e', delimiter=None)  # 将数据保存为CSV文件
frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件
array:存入文件的数组
fmt:写入文件的格式,例如:%d %.2f %.18e
delimiter:分隔字符串,默认是任何空格
a = np.arange(100).reshape(5, 20)
np.savetxt('a.csv', a, fmt='%d', delimiter=',')
    np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)  # 将CSV文件中的数据读入到numpy数组中
frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件
dtype:数据类型,可选
delimiter:分隔字符串,默认是任何空格
unpack:如果True,读入属性将分别写入不同变量
  多维数据的存取:  
    a.tofile(frame, sep='', format='%s')
frame:文件、字符串
sep:数据分隔字符串,如果是空串,写入文件为二进制
format:写入数据的格式
    a.fromfile(frame, dtype=float, count=-1, sep='')  # 读取时需要知道存入文件时数组的维度和元素类型
frame:文件、字符串
dtype:读取的数据类型
count:读入元素个数,-1表示读入整个文件
sep:数据分隔字符串,如果是空串,写入文件为二进制
  NumPy的便捷文件存取:
    np.save(fname, array) 或 np.savez(fname, array)
frame:文件名,以.npy为扩展名,压缩扩展名为.npz
array:数组变量
    np.load(fname)
frame:文件名,以.npy为扩展名,压缩扩展名为.npz
3.NumPy的随机数函数子库
    NumPy的random子库:为数组类型提供随机数的相关功能,若想使用其中的函数,需 np.random.*
rand(d0, d1,……, dn)          根据d0-dn创建随机数数组,浮点数,[0, 1),均匀分布
randn(d0, d1, ……, dn)        根据d0-dn创建随机数数组,标准正态分布
randint(low[,high, shape])     根据shape创建随机整数或整数数组,范围是[low, high)
seed(s)                        随机数种子,s是给定的种子值
shuffle(a)                     根据数组a的第1轴进行随排列,改变数组x
permutation(a)                 根据数组a的第1轴产生一个新的乱序数组,不改变数组x
choice(a[, size, replace, p])  从一维数组a中以概率p抽取元素,形成size形状新数组replace表示是否可以重用元素,默认为False
uniform(low, high, size)       产生具有均匀分布的数组,low起始值,high结束值,size形状
normal(loc, scale, size)       产生具有正态分布的数组,loc均值,scale标准差,size形状
poisson(lam, size)             产生具有泊松分布的数组,lam随机事件发生率,size形状
4.NumPy的统计函数
    NumPy直接提供的统计类函数,通过使用np.* 来调用
sum(a, axis=None)                      根据给定轴axis计算数组a相关元素之和,axis整数或元组
mean(a, axis=None)                     根据给定轴axis计算数组a相关元素的期望,axis整数或元组
a = np.arange(15).reshape(3, 5)
np.mean(a, axis=1)
--> array([ 2.,  7., 12.])
np.mean(a, axis=0)
--> array([5., 6., 7., 8., 9.])
average(a, axis=None, weights=None)    根据给定轴axis计算数组a相关元素的加权平均值
std(a, axis=None)                      根据给定轴axis计算数组a相关元素的标准差
var(a, axis=None)                      根据给定轴axis计算数组a相关元素的方差
min(a)  max(a)                         计算数组a中元素的最小值、最大值
argmin(a) argmax(a)                    计算数组a中元素最小值、最大值的降一维后下标
unravel_index(index, shape)            根据shape将一维下标index转换成多维下标
ptp(a)                                 计算数组a中元素最大值与最小值的差
median(a)                              计算数组a中元素的中位数(中值)
5.NumPy的梯度函数
np.gradient(f)       计算数组f中元素的梯度,当f为多维时,返回每个维度梯度(梯度:连续值之间的变化率,即斜率)
a=np.random.randint(0,20,(5))
np.gradient(a)
--> array([ 4. ,  5.5, -1.5, -6.5, -3. ])
存在两侧值:(12-15)/2 = -1.5
只有一侧值:(14-13)/1 = 1
当原始数据为多维数据时,会返回n个数组,第一个数组为最外层维度的梯度 
PIL库:PIL,Python Image Library
    PIL库是一个具有强大图像处理能力的第三方库
    from PIL import Image  # Image是PIL库中代表一个图像的类(对象)
图像是一个由像素组成的二维矩阵,每个元素是一个RGB值
1.图像的变换:
    读入图像后,获得像素RGB值,修改后保存为新的文件 
2.图像的手绘效果:
    手绘效果的几个特征:(黑吧灰色、边界线条较重、相同或相近色彩趋于白色、略有光源效果)
在对图像进行灰度化的基础上,由立体效果和叠加效果而成,灰度代表了图像的明暗变化,而梯度值表示的是灰度的变化率,所以通过调整像素的梯度值,来进阶改变图片的明暗程度,立体效果则通过添加虚拟深度值


Matplotlib库:数据可视化第三方库(将数据以特定的图形、图像形式展现出来,使得数据更加直观、明了)
    matplotlib.pyplot是绘制各类可视化图形的命令字库,相当于快捷方式
import matplotlib.pyplot as plt
plt.savefig('test', dpi=600)  # 将输出图形存储为文件,默认为PNG格式,可以通过dpi修改输出质量(每一英寸空间内点的数量,600相当高了已经)
plt.axis([-1, 10, 0, 6])限定了x轴的范围从-1到10,y轴坐标从0到6
        pyplot的绘图区域
plt.subplot(nrows, ncols, plot_number)在全局绘图区域中创建一个分区体系,并定位到一个子绘图区域(将绘制区域分割成以第一个参数为横轴数量,第二个参数为纵轴数量的子区域,plot_number指出了当前的绘图区在哪块(编号从1开始))
plt.plot(x, y, format_string, **kwargs)
x:X轴数据,列表或数组,可选
y:Y轴数据,列表或数组
format_string:控制曲线的格式字符串,可选(由颜色字符、风格字符和标记字符组成)
                    color='green'控制颜色
                    linestyle='dashed'控制线条风格
                    marker='o'标记风格
                    markerfacecolor='blue'控制标记颜色
   markersize=20:标记尺寸
   ……
'b' 蓝色                   'y'           黄色
'g' 绿色                   'k'           黑色
'r' 红色                   'w'           白色
'c' 青绿色 cyan            '#008000'     RGB某颜色
'm' 洋红色 magenta       '0.8'         灰度值字符串
  =========================================================================
'-' 实线
'--'    破折线
'-.' 点划线
':'     虚线
''''    无线条
  =========================================================================
'.'     点标记                '1' 下花三角标记 'h' 竖六边形标记
','     像素标记(极小点)    '2' 上花三角标记 'H' 横六边形标记
'o'     实心圈标记            '3' 左花三角标记 '+' 十字标记
'v'     倒三角标记      '4' 右花三角标记 'x' x标记
'^'     上三角标记      's' 实心方形标记 'D' 菱形标记
'>'     右三角标记      'p' 实心五角标记 'd' 瘦菱形标记
'<'     左三角标记      '*' 星型标记   '|' 垂直线标记
**kwargs:第二组或更多(x, y, format_string)(当绘制多条曲线时,各条曲线的X不能省略)
pyplot的中文显示:
pyplot并不默认支持中文显示,需要rcParams修改字体实现(全局字体修改)
   'font.family'      用于显示字体的名字
   'font.style'       字体风格,正常'normal'或斜体'italic'
           'font.size'       字体大小,整数字号或'large'、'x-small'
'SimHei'      中文黑体
'Kaiti'       中文楷体
'LiSu'        中文隶书
'FangSong'    中文仿宋
'YouYuan'     中文幼圆
'STSong'      华文宋体
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei'  # 修改字体为黑体(SimHei)
plt.plot([3, 1, 4, 5, 2])
plt.ylabel('纵轴(值)')
plt.savefig('test', dpi=600)
plt.show()
在有中文输出的地方,增加一个属性:fontproperties
plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=20)
pyplot的文本显示函数
plt.xlabel() 对X轴增加文本标签
plt.ylabel() 对Y轴增加文本标签
plt.title() 对图形整体增加文本标签
plt.text() 对任意位置增加文本
plt.annotate() 在图形中增加带箭头的注解
import matplotlib.pyplot as plt
import numpy as np
a = np.arange(0.0, 5.0, 0.02)
plt.plot(a, np.cos(2 * np.pi * a), 'r--')
plt.xlabel('横轴:时间', fontproperties='SimHei', fontsize=15, color='green')
plt.xlabel('纵轴:振幅', fontproperties='SimHei', fontsize=15)
plt.title(r'正弦波实例$y=cos(2\pi x)$', fontproperties='SimHei', fontsize=25)
plt.text(2, 1, r'$\mu=100$', fontsize=15)  # 2表示横坐标,1表示纵坐标
plt.axis([-1, 6, -2, 2])
plt.grid(True)
plt.show()
   plt.annotate(s, xy=arrow_crd,xytext=text_crd,arrowprops=dict)
s:要注解的字符串
xy:箭头所在的位置
xytext:文本显示的位置
arrowprops:字典类型,定义了箭头显示的一些属性
plt.annotate(r'$\mu=100$', xy=(2, 1), xytext=(3, 1.5), 
arrowprops=dict(facecolor='black', shrink=0.1, width=2))  # shrink:箭头从指的位置到文本位置的两侧留有位置的缩进
pyplot的子绘图区域
   plt.subplot2grid():设定网格,选中网格,确定选中行列区域数量,编号从0开始
plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
plt.subplot2grid((3, 3), (1, 0), colspan=2) 将整个绘图分成3*3,(1,0)表示当前被选定的位置,colspan表示列的延伸
   import matplotlib.gridspec as gridspec   # 进行子区域设计和选定的类 
   gs = gridspec.GridSpec(3, 3)
   ax1 = plt.subplot(gs[0, :])
   ax2 = plt.subplot(gs[1, :-1])
   ax3 = plt.subplot(gs[1:, -1])
   ax4 = plt.subplot(gs[2, 0])
   ax5 = plt.subplot(gs[2, 1])
        plt.grid(True)  # 在图形中加入网格曲线
     pyplot的基础图标函数
plt.plot(x, y, fmt, ……) 绘制一个坐标图
plt.boxplot(data, notch, position) 绘制一个箱型图
plt.bar(left, height, width, bottom) 绘制一个条形图
plt.barh(width, bottom, left, height) 绘制一个横向条形图
plt.polar(theta, r) 绘制极坐标图
plt.pie(data, explode)     绘制饼图
plt.psd(x, NFFT=256, pad_to, Fs) 绘制功率谱密度图
plt.specgram(x, NFFT=256, pad_to, F) 绘制谱图
plt.cohere(x, y, NFFT=256, Fs) 绘制X-Y的相关性函数
plt.scatter(x, y) 绘制散点图,其中,x和y长度相同
plt.step(x, y, where) 绘制布阶图
plt.hist(x, bins, normed) 绘制直方图
plt.contour(X, Y, Z, N) 绘制等值图
plt.vlines() 绘制垂直图
plt.stem(x, y, linefmt, markerfmt) 绘制柴火图
plt.plot_date() 绘制数据日期
   plt.pie()
import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode  = (0, 0.1, 0, 0)  # 0.1是将第二块分离突出,0.1表示距离
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, startangle=90)#autopct表示中间显示百分数的方式,shadow表示饼图是二维饼图,还是带有阴影效果的,startangle表示饼图起始的角度
plt.axis('equal')  # 绘图时x和y方向的尺寸是相等的
plt.show()
   plt.hist()
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(0)
mu, sigma = 100, 20  # 均值和标准差
a = np.random.normal(mu, sigma, size=100)
plt.hist(a, 20, normed=1, histtype='stepfilled', facecolor='b', alpha=0.75)#bin=20:直方图的个数normed=1 表示区间内出现的概率 normed=0 表示区间内出现的个数 alpha:尺寸比例
plt.title('Histogram')
plt.show()
   plt.polar()
import numpy as np
import matplotlib.pyplot as plt
N = 20  # 绘制极坐标中数据的个数
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi / 4 * np.random.rand(N)
ax = plt.subplot(111, projection='polar')  # 使用面向对象的方式绘制图形
bars = ax.bar(theta, radii, width=width, bottom=0.0)#theater,radii,width对应polar(left,height,width) left指绘制极坐标中颜色区域从哪开始,heigth从中心点到边缘的长度,width指绘图区域角度范围辐射的范围
for r, bar in zip(radii, bars):
    bar.set_facecolor(plt.cm.viridis(r / 10.))
    bar.set_alpha(0.5)
plt.show()
   使用面向对象的方法绘制散点图
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()  # 将subplots()函数变成对象,fig,ax分别对应函数生成的图标和图标相关的区域
ax.plot(10 * np.random.randn(100), 10 * np.random.randn(100), 'o')
ax.set_title('Simple Scatter')
plt.show()
   
Pandas库:是Python第三方库,提供高性能易用数据类型和分析工具  import pandas as pd
    两个数据类型:Series(相当于一维数据类型), DataFrame(相当于二维到多维的数据类型)
    基于上述数据类型的各类操作(基本操作、运算操作、特征类操作、关联类操作)
NumPy Pandas
基础数据类型 扩展数据类型
关注数据的结构表达(数据之间构成的维度) 关注数据的应用表达(如何有效的提取数据,以及对数据进行运算)
维度:数据间的关系 数据与索引间关系
    Series类型:由一组数据及与之相关的数据索引组成
import pandas as pd
a = pd.Series([9, 8, 7, 6])
print(a)
0    9   # 0 1 2 3为Pandas为数据自动增加的索引(自动索引)
1    8
2    7
3    6
dtype: int64  # NumPy中数据类型
===============================================================
import pandas as pd
a = pd.Series([9, 8, 7, 6], index=['a', 'b', 'c', 'd'])  # 自定义索引(可以省略index=)
print(a)
a    9
b    8
c    7
d    6
dtype: int64
Series类型可以由如下类型创建
   Python列表     标量值    Python字典    ndarray    其他函数
从标量值创建(index表达Series类型的尺寸)
import pandas as pd
s = pd.Series(25, index=['a', 'b', 'c'])  # 此时不能省略index=
print(s)
a    25
b    25
c    25
dtype: int64
从字典类型创建
import pandas as pd
d = pd.Series({'a':9, 'b':8, 'c':7})
print(d)
a    9
b    8
c    7
dtype: int64
   ======================================================
import pandas as pd
d = pd.Series({'a':9, 'b':8, 'c':7}, index=['c', 'a', 'b', 'd'])  # index从字典中进行选择操作
print(d)
c    7.0
a    9.0
b    8.0
d    NaN
dtype: float64
从ndarray类型创建
import pandas as pd
import numpy as np
n = pd.Series(np.arange(5))
print(n)
0    0
1    1
2    2
3    3
4    4
dtype: int32
   =========================================================
import pandas as pd
import numpy as np
n = pd.Series(np.arange(5), index=np.arange(9, 4, -1))
print(n)
9    0
8    1
7    2
6    3
5    4
dtype: int32
Series类型的基本操作
   Series类型包括index和values两部分
   Series类型的操作类似ndarray类型
   Series类型的操作类似Python字典类型
   Series类型对齐操作:Series + Series 索引值相同的值进行运算,不同的值不进行运算
Series类型的name属性
   Series对象和索引都可以有一个名字,存储在属性.name中
Series类型的修改
   Series对象可以随时修改并即可生效
    DataFrame类型:由共用相同索引的一组列组成
DataFrame是一个表格型的数据类型,每列值类型可以不同
DataFrame既有行索引、也有列索引
DataFrame常用于表达二维数据,但也可以表达多维数据
                   → column  axis=1
   ↓ index_0 → data_a    data_1 data_w
 index index_1 → data_b    data_2 data_x
axis=0 index_2 → data_c    data_3 …… data_y
index_3 → data_d    data_4 data_z
索引 多列数据

DataFrame类型可以由如下类型创建
d.ix['行索引'] 会生成这行的Series
   二维ndarray对象
import pandas as pd
import numpy as np
d = pd.DataFrame(np.arange(10).reshape(2, 5))
   由一维ndarray、列表、字典、元组或Series构成的字典(字典中的键默认设置为列索引)
dt = {'one':pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two':pd.Series([9, 8, 7, 6], index=['a', 'b', 'c', 'd'])}
d = pd.DataFrame(dt)
     =====================================================================================
d1 = {'one':[1, 2, 3, 4], 'two':[9, 8, 7, 6]}
d = pd.DataFrame(d1, index = ['a', 'b', 'c', 'd'])
   Series类型
   其他的DataFrame类型
    数据类型操作(Series和DataFrame的索引都是Index类型,Index对象是不可修改类型)
改变Series和DataFrame对象
   增加或重排:重新索引
.reindex(index=None, columns=None,……)能够改变或重排Series和DataFrame索引
   index, columns 新的行列自定义索引
   fill_value 重新索引中,用于填充缺失位置的值
   method 填充方法,ffill当前值向前填充(缺失位置的值由临近的前面的值填充),bfill向后填充
   limit 最大填充量
   copy 默认True,生成新对象,False时,新旧相等不赋值
   索引类型的常用方法
.append(idx) 连接另一个Index对象,产生新的Index对象
.diff(idx) 计算差集,产生新的Index对象
.intersection(idx) 计算交集
.union(idx) 计算并集
.delete(loc) 删除loc位置处的元素
.insert(loc, e) 在loc位置增加一个元素e
   删除:.drop()能够删除Series和DataFrame指定行或列索引(在删除列索引时,后面要加上axis=1,默认为0轴上元素)
    数据类型运算
算术运算法则:根据行列索引,补齐后运算,运算默认产生浮点数
     补齐时缺项填充NaN(空值)
     二维和一维、一维和零维间为广播运算(不同维度间为广播运算,一维Series默认在轴1参与运算,若要想在0轴上运算,需要设定axis=0)
     采用+ - * / 符号进行的二元运算产生新的对象
   .add(d, **argws) 类型间加法运算,可选参数
   .sub(d, **argws) 类型间减法运算,可选参数
   .mul(d, **argws) 类型间乘法运算,可选参数
   .div(d, **argws) 类型间除法运算,可选参数
比较运算法则:比较运算只能比较相同索引的元素,不进行补齐
     二维和一维、一维和零维间为广播运算(默认在1轴)
     采用> < >= <= == !=等符号进行的二元运算产生布尔对象


    Pandas库的数据排序(NaN统一放到排序末尾)
.sort_index()方法在指定轴上根据索引进行排序,默认升序
    .sort_index(axis=0, ascending=True)   ascending=True 递增排序
.sort_values()方法在指定轴上根据数值进行排序,默认升序
   Series.sort_values(axis=0, ascending=True)
   DataFrame.sort_values(by, axis=0, ascending=True) 默认在0轴上排序  by:axis轴上的某个索引或索引列表
    Pandas库基本的统计分析函数(适用于Series和DataFrame类型)
.sum() 计算数据的总和,按0轴计算,下同
.count() 非NaN值的数量
.mean() .median() 计算数据的算术平均值、算数中位数
.var() .std() 计算数据的方差、标准差
.min() .max() 计算数据的最小值、最大值
      =================================================================
适用于Series类型
.argmin() .argmax() 计算数据最大值、最小值所在位置的索引的位置(自动索引)
.idxmin() .idxmax() 计算数据最大值、最小值所在位置的索引(自定义索引)
      ====================================================================
.describe() 针对0轴(各列)的统计汇总(适用于Series和DataFrame类型)
    Pandas库基本的累计统计分析函数(适用于Series和DataFrame类型)   
.cumsum() 依次给出前1、2、……、n个数的和
.cumprod() 依次给出前1、2、……、n个数的积
.cummax() 依次给出前1、2、……、n个数的最大值
.cummin() 依次给出前1、2、……、n个数的最小值
      滚动计算(窗口计算)(适用于Series和DataFrame类型)
.rolling(w).sum() 依次计算相邻w个元素的和
.rolling(w).mean() 依次计算相邻w个元素的算术平均值
.rolling(w).var() 依次计算相邻w个元素的方差
.rolling(w).std() 依次计算相邻w个元素的标准差
.rolling(w).min() .max() 依次计算相邻w个元素的最小值和最大值
     数据的相关性分析
   协方差 > 0,X和Y正相关
   协方差 < 0,X和Y负相关
   协方差 = 0,X和Y独立无关
  Pearson相关系数:
    r取值范围[-1, 1]
0.8 ~1.0 极强相关
0.6 ~0.8 强相关
0.4 ~0.6 中等程度相关
0.2 ~0.4 弱相关
0.0 ~0.2 极弱相关或无相关
相关分析函数(适用于Series和DataFrame类型)
   .cov() 计算协方差矩阵
   .corr() 计算相关系数矩阵,Pearson、Spearman、Kendall等系数



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值