1 numpy函数
np.array([[x, x],[x, x]]) # 创建矩阵
np.mat([[x, x],[x, x]]) #创建矩阵,此矩阵可以用'.I'求逆
np.hstack([a1, a2]) # 横向合并两个矩阵
np.vstack([a1, a2]) # 纵向合并两个矩阵
np.stack((a1, a2), axis=0) # axis=0是纵向合并,axis=1是横向合并,并且合并后维数增加一维
np.arange(1, 10, 2) # 创建有规律的矩阵,第3个参数为步长
np.linespace(1, 10, 5) # 创建等差数列,第三个参数为元素个数
np.logspace(1, 10, 5) # 创建等比数列,第三个参数为原属个数
np.ones(3, 4) # 全1矩阵
np.zeros((3, 4)) # 全0矩阵
np.eye(3) # 单位矩阵
np.emptp((3, 4)) # 空矩阵
np.sin(a) #
np.cos(a) #
np.arcsin(a) #
np.exp(a) #
np.sqrt(a) #
a1.dot(a2) # 点乘
a.T # 转置
a.max() # 矩阵的最大值
a.max(axis=0) # 矩阵的最大值,axis=0表示列方向上
a.max(axis=1) # 矩阵的最大值,axis=0表示行方向上
a.min() # 矩阵的最小值
a.mean() # 矩阵的平局值
a.var() # 矩阵的方差
a.std() # 矩阵的标准差
np.median(a, axis=0) # 矩阵的中位值
a.sum() # 矩阵求和
a.cumsum() # 矩阵累计和
np.linalg.svd(a) # SVD分解
np.linalg.det(a) # 求a的行列式
x, y = np.mgrid[-3:3:.01, -3:3:.01] # 相当于生成坐标索引,.01为步长
np.r_[A1, A2] # 按行连接两个矩阵
np.c_[A1, A2] # 按列连接两个矩阵
a.shape #矩阵的形状
a = np.vstack(a).reshape(-1,num) # 重新定义形状
np.squeeze(a) # 从数组的形状中删除单维度条目
x, y = np.split(data, (4,), axis=1) #axis=1,代表列,是要把data数据集中的所有数据按第四、五列之间分割为X集和Y集。
np.mgrid[1:3:2j,4:6:3j] # 根据范围扩展生成两个矩阵,矩阵的形状是2x3,第一个矩阵由[1:~:3].T向右扩展,第二个矩阵由[4:~:6]向下扩展
2 np.loadtxt() 从指定文件读取数据
numpy.loadtxt(fname, dtype=float', comments='#', delimiter=',', converters={4:function}, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes', max_rows=None)
# fname是文件路径
# dtype是数据类型
# delimiter是数据间的间隔符
# converters是批量替换,这里的意思是通过函数function将数据的第5列批量替换,函数举例如下:
# def function(s):
# it ={b'xxx':0, b'yyy':1, b'zzz':2}
# return it[s]
3 数组重组(flatten、flat、ravel、reshape、resize)
a.flatten() | 将数组变成一维 | 默认参数为“C”,按照行进行重组,“F”为列 |
---|---|---|
a.flat | ||
a.ravel()、 np.ravel(a) | 将数组变成一维 | 默认参数为“C”,按照行进行重组,“F”为列 |
a.reshape(2,3)、np.reshape(a,(2,3)) | 改变数组形状 | 在变换过程中,数组的元素个数不变,形状改变,形状-1表示一维 |
a.resize(2,3)、np.resize(a,(2,3)) | 改变数组大小 | 在变换过程中,数组的元素个数有形状决定,增加的元素值重复于原来的值 |
4 产生随机数
np.random.rand() | 产生给定形状的数组,其中的值在[0,1]中均匀分布 | np.random.rand(3,2)、np.random.rand() |
---|---|---|
np.random.uniform() | 产生给定形状的数组,其中的值在给定区间均匀分布 | np.random.uniform(1,10,(3,2))、np.random.uniform(1,10) |
np.random.randn() | 产生给定形状的数组,其中的值服从正态分布(均值为0,方差为1) | np.random.randn(3,2)、np.random.randn() |
np.random.normal() | 产生给定形状的数组,其中的值服从正态分布,均值、方差自己指定 | np.random.normal(0,1,(3,2))、np.random.normal(0,1) |
np.random.randint() | 产生给定形状的数组,其中的值在指定区间内离散均匀抽样,值默认为int型,其中dtype参数可以指定为int64 | np.random.randint(1,10,(3,2))、np.random.randint(1,10) |
np.random.random() | 产生给定形状的数组,其中的值在[0,1]中均匀抽样 | np.random.random(3,2)、np.random.random() |
5 列表、数组和矩阵之间的转换
6 python读写excel
1) 读excel表
import xlrd
data = xlrd.open_workbook('xls文件路径')
table = data.sheets()[0] #通过索引顺序获取sheets
或 table = data.sheet_by_index(0) #通过索引顺序获取sheets
或 table = data.sheet_by_name(u'名称') #通过名称获取sheets
table.row_values(i) #获取整行
table.col_values(i) #获取整列
table.nrows #获取行数
table.ncols #获取列数
table.cell(0,0).value #获取某单元格
2) 写excel表
import xlwt
workbook = xlwt.Workbook(encoding ='ascii') #创建workbook(其实就是excel,后来保存一下就行)
worksheet = workbook.add_sheet('MyWorksheet') #创建表
worksheet.write(0, 0, label = 'Row 0,Column 0 Value') #往单元格内写入内容
workbook.save('Excel_Workbook.xls') #保存
例:
def save(data, path):
f = xlwt.Workbook() # 创建工作簿
sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True) # 创建sheet
[h, l] = data.shape # h为行数,l为列数
for i in range(h):
for j in range(l):
sheet1.write(i, j, data[i, j])
f.save(path)
7 python将list、numpy写入txt
numpy:
np.savetxt("文件路径", data)
list:
file = open('文件路径', 'w')
file = write(str(list_data))
file.close()
8 异常判断语句
try:
语句1
except Exception:
语句2
(意思是尝试执行语句1,如果发生了异常,比如语句中有变量未定义,就执行语句2)
9 求绝对值
np.fabs(xxx)