[toc]
Numpy
矩阵创建
创建0向量/三维矩阵
1
2
3import numpy as np
np.zeros((10))
np.zeros((1,10,10))创建1向量/三维矩阵
1
np.ones((1,10,10))
矩阵拼接\转置
1 | np.hstack((matrix1,matrix2)) #横向拼接 |
求平均
1 | np.mean(array,axis=1) #行平均 |
只保留独一无二值
1 | np.unique() #去除numpy数组里的相同值 |
给矩阵嵌入值
- 例如:给矩阵x在第三列插入一列0
1
np.insert(x,3,0,axis=1)
矩阵排序例子
- 按照第一列对矩阵fe进行排序
1
fe_sort = fe[np.argsort(fe[:,0])]
- 按照矩阵的第一列排序np.argsort(x[:,0])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19x = np.array([[9,6,5,11],[7,5,4,6],[12,9,8,10]])
print(x)
'''
[[ 9 6 5 11]
[ 7 5 4 6]
[12 9 8 10]]
'''
print(x[np.argsort(x[:,0])]) #从小到大
'''
[[ 7 5 4 6]
[ 9 6 5 11]
[12 9 8 10]]
'''
print(x[np.argsort(-x[:,0])]) #从大到小
'''
[[12 9 8 10]
[ 9 6 5 11]
[ 7 5 4 6]]
'''
loadtxt && savetxt
- numpy.loadtxt
1
2numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes', max_rows=None, *, like=None)
numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ', encoding=None) - 常用参数解释:
1
2
3
4
5fname #文件名
dtype=<class 'float'> #读取数据类型
skiprows=0 #跳过几行读取
usecols=None #读取哪几列,例如:usecols = (1,4,5)
max_rows=None #最大读取几行
展示输出
1 | np.set_printoptions(threshold=100000000) #显示省略的数据 |
计算行列式
计算二维数组行列式 [[a, b], [c, d]] 也即是 ad - bc:
1
2a = np.array([[1,2],[3,4]])
b = np.linalg.det(a)计算多个矩阵的行列式:
1
2a = np.array([ [[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]] ])
b = np.linalg.det(a)https://numpy.org/doc/stable/reference/generated/numpy.linalg.det.html
相似的用法:
slogdet
scipy.linalg.det
-参考:https://numpy.org/doc/stable/reference/generated/numpy.linalg.det.html
np.linalg.norm(求范数)
1 | x_norm=np.linalg.norm(x, ord=None, axis=None, keepdims=False) |
计算协方差矩阵
1 | # numpy.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None) |
rowvar=True,每行为一个变量,每一列是对这个变量的观察
rowvar=False,与上相反
y=None,另外一组变量和观察结果。y和m有相同的形式
https://numpy.org/doc/stable/reference/generated/numpy.cov.html
https://www.huaweicloud.com/articles/5cac03cc9d220d6b0561dbaa161bcbcf.html
Numpy.append
1 | import numpy as np |
单位矩阵
1 | np.identity(n) #生成n×n的单位矩阵 |
点乘与叉乘
1 | #点乘直接a*b |
矩阵中字符串改为浮点数
1 | x = np.array(['1.1', '1.2', '1.3']) |
Math
对数函数
1 | import math |
- x – 数值表达式
- base – 可选,底数,默认为 e
- math.log(x) 就相当于数学中的ln(x),x>0,求底数为e的对数,e = 2.718281828459;