今年项目很多,人手又不够,市场销售又不时催新功能,每个人手上都赶着几个项目的任务。领导说你们要抓紧呀,要提需求呀,我想说的是,提加班给加班费能行吗?
4.5 线性代数
dot 函数是矩阵的点乘积,就是有两个合适的矩阵 a和b,a的第n行每一个元素乘b的n列的每一个元素,积的和作为结果矩阵的一个元素
比如 a = [[1,2],
[3,4]]
b = [[1,1],
[2,2]]
c =a.dot(b)
c = [[5,5].
[11,11]]
也可以 a@b
numpy.linalg 里有inv 函数就是求矩阵的逆矩阵
你矩阵就是 如果 a@b = b@a = E,存在E的话,那么a和b互为逆矩阵(这个好像是大学线性代数的知识,基本忘光了,好像那时候考的还不错的呀)
b = inv(a),如果不报错,就说明存在b作为a的逆矩阵
inv函数求出的值,可能是精度很高的浮点数:
a Out[137]: array([[1, 2], [3, 4]]) b = inv(a) b[0][0] Out[139]: -1.9999999999999998
理论上 a@b == b@a,运算一下
a@b Out[140]: array([[1.00000000e+00, 1.11022302e-16], [0.00000000e+00, 1.00000000e+00]]) b@a Out[141]: array([[1.0000000e+00, 4.4408921e-16], [0.0000000e+00, 1.0000000e+00]])
结果来看,精确到小数点后面时,是不一样的,所以inv求出来的应该是近似值
4.6 伪随机数生成
npmpy.random 模块,可以设置局部的随机数种子 np.random.RandomState(),全局的是np.random.seed()
np.random.normal(size=(n,k)),生成n*k的正太分布样本数组
4.7 随机漫步
用 np.random.randint(n,k,size=number) 可以生成一个number大小的 n~k之间的数组