服装设计师参考的网站,中建八局第二建设有限公司平台,网站内容的建设,优化营商环境发言材料2019独角兽企业重金招聘Python工程师标准 一、数组方法 创建数组#xff1a;arange()创建一维数组#xff1b;array()创建一维或多维数组#xff0c;其参数是类似于数组的对象#xff0c;如列表等 反过来转换则可以使用numpy.ndarray.tolist()函数#xff0… 2019独角兽企业重金招聘Python工程师标准 一、数组方法 创建数组arange()创建一维数组array()创建一维或多维数组其参数是类似于数组的对象如列表等 反过来转换则可以使用numpy.ndarray.tolist()函数如a.tolist() 创建数组np.zeros((2,3))或者np.ones((2,3))参数是一个元组分别表示行数和列数 对应元素相乘a * b得到一个新的矩阵形状要一致但是允许a是向量而b是矩阵a的列数必须等于b的列数a与每个行向量对应元素相乘得到行向量。 - / 与 * 的运算规则相同。 数学上定义的矩阵乘法 np.dot(a, b)。如果形状不匹配会报错但是允许允许a和b都是向量返回两个向量的内积。只要有一个参数不是向量就应用矩阵乘法。 PS总之就是向量很特殊在运算中可以自由转置而不会出错运算的返回值如果维度为1也一律用行向量[]表示 读取数组元素如a[0],a[0,0] 数组变形如ba.reshape(2,3,4)将得到原数组变为2*3*4的三维数组后的数组或是a.shape(2,3,4)或a.resize(2,3,4)直接改变数组a的形状 数组组合水平组合hstack((a,b))或concatenatea,b,axis1;垂直组合vstack((a,b))或concatenatea,b,axis0;深度组合dstack((a,b)) 数组分割与数组组合相反分别有hsplit,vsplit,dsplit,split(split与concatenate相对应) 将np数组变为py列表a.tolist() 数组排序小到大列排列np.msort(a)行排列np.sort(a)np.argsort(a)排序后返回下标 复数排序np.sort_complex(a)按先实部后虚部排序 数组的插入np.searchsorted(a,b)将b插入原有序数组a并返回插入元素的索引值 类型转换如a.astype(int)np的数据类型比py丰富且每种类型都有转换方法 条件查找返回满足条件的数组元素的索引值np.where(条件) 条件查找返回下标np.argwhere(条件) 条件查找返回满足条件的数组元素np.extract([条件],a) 根据b中元素作为索引查找a中对应元素np.take(a,b)一维 数组中最小最大元素的索引np.argmin(a)np.argmax(a) 多个数组的对应位置上元素大小的比较np.maximum(a,b,c,…..)返回每个索引位置上的最大值np.minimum(…….)相反 将a中元素都置为ba.fill(b) 每个数组元素的指数np.exp(a) 生成等差行向量如np.linspace(1,6,10)则得到1到6之间的均匀分布总共返回10个数 求余np.mod(a,n)相当于a%nnp.fmod(a,n)仍为求余且余数的正负由a决定 计算平均值np.mean(a) 计算最大值amax(a, axisNone, outNone, keepdimsFalse) 。Return the maximum of an array or maximum along an axis. 计算加权平均值np.average(a,b),其中b是权重 计算数组的极差np.pth(a)max(a)-min(a) 计算方差总体方差np.var(a) 标准差np.std(a) 算术平方根a为浮点数类型np.sqrt(a) 对数np.log(a) 修剪数组将数组中小于x的数均换为x大于y的数均换为ya.clip(x,y) 所有数组元素乘积a.prod() 数组元素的累积乘积a.cumprod() 数组元素的符号np.sign(a)返回数组中各元素的正负符号用1和-1表示 数组元素分类np.piecewise(a,[条件][返回值])分段给定取值根据判断条件给元素分类并返回设定的返回值。 判断两数组是否相等 np.array_equal(a,b) 判断数组元素是否为实数 np.isreal(a) 去除数组中首尾为0的元素np.trim_zeros(a) 对浮点数取整但不改变浮点数类型np.rint(a) 二、数组属性 1.获取数组每一维度的大小a.shape 2.获取数组维度a.ndim 3.元素个数a.size 4.数组元素在内存中的字节数a.itemsize 5.数组字节数a.nbytesa.size*a.itemsize 6.数组元素覆盖a.flat1则a中数组元素都被1覆盖 7.数组转置a.T 不能求逆、求协方差、迹等不适用于复杂科学计算可以将array转换成matrix。 三、矩阵方法 创建矩阵np.mat(‘…’)通过字符串格式创建np.mat(a)通过array数组创建也可用matrix或bmat函数创建 matrix不会自动转换行列向量。matrix的所有运算默认都是数学上定义的矩阵运算除非用mutiply函数实现点乘。 创建复合矩阵np.bmat(‘A B’,’AB’)用A和B创建复合矩阵AB字符串格式 创建n*n维单位矩阵np.eye(n) 矩阵的转置A.T 矩阵的逆矩阵A.I 计算协方差矩阵np.cov(x)np.cov(x,y) 计算矩阵的迹对角线元素和a.trace() 相关系数np.corrcoef(x,y) 给出对角线元素a.diagonal() 四、线性代数 估计线性模型中的系数anp.linalg.lstsq(x,b),有ba*x 求方阵的逆矩阵np.linalg.inv(A) 求广义逆矩阵np.linalg.pinv(A) 求矩阵的行列式np.linalg.det(A) 解形如AXb的线性方程组np.linalg.solve(A,b) 求矩阵的特征值np.linalg.eigvalsA 求特征值和特征向量np.linalg.eig(A) Svd分解np.linalg.svd(A) 五、概率分布 产生二项分布的随机数np.random.binomial(n,p,size…)其中n,p,size分别是每轮试验次数、概率、轮数 产生超几何分布随机数np.random.hypergeometric(n1,n2,n,size…)其中参数意义分别是物件1总量、物件2总量、每次采样数、试验次数 产生N个正态分布的随机数np.random.normal(均值标准差N) 产生N个对数正态分布的随机数np.random.lognormal(mean,sigma,N) 六、多项式 多项式拟合poly np.polyfit(x,a,n),拟合点集a得到n级多项式其中x为横轴长度返回多项式的系数 多项式求导函数np.polyder(poly),返回导函数的系数 得到多项式的n阶导函数多项式.deriv(m n) 多项式求根np.roots(poly) 多项式在某点上的值np.polyval(poly,x[n]),返回poly多项式在横轴点上x[n]上的值 两个多项式做差运算 np.polysub(a,b) Matpoltlib简单绘图方法 引入简单绘图的包import matplotlib.pyplot as plt最后用plt.show()显示图像 基本画图方法plt.plot(x,y)plt.xlabel(‘x’)plt.ylabel(‘y’)plt.title(‘…’) 子图plt.subplot(abc)其中abc分别表示子图行数、列数、序号 创建绘图组件的顶层容器fig plt.figure() 添加子图ax fig.add_subplot(abc) 设置横轴上的主定位器ax.xaxis.set_major_locator(…) 绘制方图plt.hist(a,b)a为长方形的左横坐标值b为柱高 绘制散点图plt.scatter(x,y,c ‘..’,s ..)c表示颜色s表示大小 添加网格线plt.grid(True) 添加注释如ax.annotate(x, xyxpoint, textcoordsoffsetpoints,xytext(-50, 30), arrowpropsdict(arrowstyle-)) 增加图例如plt.legend(locbest, fancyboxTrue) 对坐标取对数横坐标plt.semilogx()纵坐标plt.semilogy()横纵同时plt.loglog() 转载于:https://my.oschina.net/Bettyty/blog/820942