numpy知识

来源:互联网 发布:php进阶书籍推荐知乎 编辑:程序博客网 时间:2024/06/06 21:00

使用numpy前需要先导入

import numpy

一、建立矩阵

直接建立

a = numpy.array([[1,2,3],[4,5,6],[7,8,9]])b = numpy.array([[1,2], [3,4]], dtype=complex )

从tuple建立

a = [[1,2,3],[4,5,6],[7,8,9]]b = numpy.array(a)

建立特殊矩阵

a = numpy.zeros([4,5]) # all zeroa = numpy.ones([7,6]) # all onea = numpy.eye(4,7) # 4x7 diagonala = numpy.diag(range(5)) # 5x5 diagonala = numpy.empty((2,3))a = numpy.arange(10, 30, 5) # array([10, 15, 20, 25]), 1-Da = numpy.linspace(0, 2, 9) # 9 numbers from 0 to 2a = numpy.random.random((2,3)) # 随机数矩阵a = numpy.fromfunction(f,(5,4),dtype=int) # 从函数f(x,y)建立

二、矩阵变换、变形

a.reshape(-1)a.reshape(3, 4, -1)a.T # 转置a.transpose() # 转置numpy.linalg.inv(a) # 求逆a.diagonal([offset, axis1, axis2]) # 对角元numpy.einsum('iijj->ij',a)numpy.r_[a,b] # 在a中增加新行bnumpy.c_[a,b] # 新列

三、一般运算

y = x # 建立引用,修改x会影响yy = x.copy() # 建立副本,修改x不会影响ya.dot(b) # 矩阵乘法numpy.dot(a,b) # 矩阵乘法numpy.trace(a) #求迹

四、特殊运算

numpy.einsum('iijj->ij',a)