1、Numpy
arange
作用:Numpy 中 arange() 主要是用于生成数组
语法:numpy.arange(start, stop, step, dtype = None)
注:包括开始但不包括停止的区间,默认步长为1 ,返回的是narray
matrix
作用:将数组转换为矩阵,注意矩阵和数组在一些使用上的不同
语法:np.matrix(narray)
multiply 与 *
在矩阵中
multiply表示的是对应元素相乘
* 表示的是矩阵运算
在数组中
multiply表示的是对应元素相乘
* 表示的是对应元素相乘
sum
作用:假设数组 (m,n)
- 无参时,全部相加
- axis=0,每一列自己的相加,返回的是一个(1,n)数组,注意和shape的0、1不太一样
- axis=1,每一行自己相加,返回的是一个 (1,m)数组
max/min
无参时,返回数组中最大/小值
axis=0时,返回每一列中最大/小值
axis=1时,返回每一行中最大/小值
argmax/argmin
无参时,返回数组中最大/小值位置
axis=0时,返回每一列中最大/小值位置
axis=1时,返回每一行中最大/小值位置
ravel
作用:将多维数组转换为一维数组的功能
语法:array.ravel()
shape
array/matrix . shape[0]返回行
array/matrix . shape[1]返回列
#测试shape在数组和矩阵中区别
data['X'].shape[0]#5000 ,在数组中返回行
X_Matrix = np.matrix(data['X'])
X_Matrix.shape[0]#5000 也是返回行
zeros
作用:生成一个指定形状的元素全为0的数组
语法:zeros(shape, dtype)
zeros((3,4))生成一个3行4列的0数组
insert
作用:在指定列和行插入一行或者一列数组
用法:np.insert(指定数组, 位置 ,values=插入的数组, axis = 0/1)
测试在指定行/列插入多维数组
1)当X是(10 ,5)的数组时,若要在首列插入两列零数组x0时。
x0 = np.zeros( (2 , 10) )
X1 = np.insert( X , 0 , values=x0 , axis = 1)
2)当X是(10 ,5)的数组时,若要在首行插入两列零数组x0时。
x0 = np.zeros( (2 , 5) )
X1 = np.insert( X , 0 , values=x0 , axis = 1)
可以看出来,x0的列数与指定数组的行列有关
2、Pandas
read_csv
insert
iloc
作用:提取指定的行或者列的数据
语法:df.iloc[ : , 0:cols-1 ]#提取 所有行的 [0 ,cols-1)列的数据
isin
作用:返回含有指定条件的dataframe
语法:
data [ data [‘Admitted’].isin([1])]
注:返回‘Admitted’列中数值为1的DataFrame,不是Admitted这一列,而是这一列数值为1的样本
Dataframe和Array的相互转化
DataFrame是Pandas的两大数据结构之一(另一个是Series),array是Numpy中的数据结构
语法:
- DataFrame转array的方式:
array = df.values - array转DataFrame的方式:
df = pd.Dataframe(array)
3、Matplotlib
subplot
作用:创建单个子图,subplot可以规划figure划分为n个子图,但每条subplot命令只会创建一个子图
语法:subplot(nrows,ncols,sharex,sharey,subplot_kw,** fig_kw)
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
#作图1
plt.subplot(221)
plt.plot(x, x)
#作图2
plt.subplot(222)
plt.plot(x, -x)
#作图3
plt.subplot(223)
plt.plot(x, x ** 2)
plt.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)
#作图4
plt.subplot(224)
plt.plot(x, np.log(x))
plt.show()
测试:
x = np.arange(0, 100)
#作图1
plt.subplot(221)
plt.subplot(222)
plt.plot(x, x)
plt.plot(x, -x)
subplots
作用:创建多个子图
语法:与subplot类似
fig,axes=plt.subplots(2,2)
ax1=axes[0,0]#图上位置就是数组一样
ax2=axes[0,1]
ax3=axes[1,0]
ax4=axes[1,1]
ax1.plot(x, x)
figure
作用:创建图形
语法:figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
- num:图像编号或名称,数字为编号 ,字符串为名称 List item
- figsize:指定figure的宽和高,单位为英寸;
- dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80
- facecolor:背景颜色
- edgecolor:边框颜色
- frameon:是否显示边框
plot
作用:画折线图
语法:
scatter
作用:画散点
语法:plt.scatter(x , y s ,c ,marker)
- x、y—输入array和dataframe类型都可以(测试过)
- s–点的大小,默认就可以
- c–点的颜色
- marker–点的形状
其他参数暂时没有用到
legend
set_xlabel/ylabel
show
4、scipy.optimize
fmin_tnc()
在用python实现逻辑回归和线性回归时,使用梯度下降法最小化cost function,用到了fmin_tnc()和minimize()。
调用:
scipy.optimize.fmin_tnc(func, x0, fprime=None, args=()...)
最常使用的参数:
func:优化的目标函数
x0:初值
fprime:提供优化函数func的梯度函数
args:元组,是传递给优化函数的参数
返回: x nfeval rc
x : 数组,返回的优化问题目标值,通过result[0]取出