avatar

Numpy科学计算库

01 Numpy属性

Numpy常用于矩阵的运算

  • np.array()定义array矩阵

  • array.ndim矩阵的维度

  • array.shape矩阵的形状

  • array.size矩阵的大小

  • array.dtype矩阵元素的类型


02 array创建

  • np.array([x,x,x],dtype = np.int/float)定义矩阵并定义矩阵元素类型

  • np.array([1,2,3])一维矩阵

  • np.array([[xxx]])二维矩阵(多少个中括号就多少维度的矩阵)

  • np.zero((a,b))定义一个a行b列全为0的矩阵

  • np.one((a,b))定义一个a行b列全为1的矩阵

  • np.arange(x)生成0到x-1的x个数字

  • np.arange(a,b)生成a到b-1的b-a个数字

  • np.arange(a,b,c)生成a到b每隔c输出一个数字

  • np.arange(c).reshape(a,b)将c个数字分成a行b列生成


03 numpy的运算


  • arr1 + arr2矩阵对位相加

  • arr1 - arr2矩阵对位相减

  • arr1 * arr2矩阵对位相乘

  • arr1 ** arr2矩阵对位取幂

  • arr1 / arr2矩阵对位相除

  • arr1 % arr2矩阵对位取余

  • arr1 // arr2矩阵对位取整

  • arr + x矩阵所有元素+x

  • arr - x矩阵所有元素-x

  • arr * x矩阵所有元素*x

  • arr / x矩阵所有元素/x

  • arr > 3矩阵判断,判断矩阵中的哪些元素大于x

  • np.dot(arr1,arr2)矩阵arr1乘以矩阵arr2

  • arr1.dot(arr2)矩阵arr1乘以矩阵arr2

  • arr.Tarr矩阵转置(一维的不可转置)

  • np.transpose(arr)arr矩阵转置


04 随机生成数以及矩阵的运算


  • np.random.random(a,b)生成a行b列的0到1的随机数

  • np.random.normal(a,b)生成a行b列的符合正态分布的随机数

  • np.random.randint(0,10,size = (a,b))生成a行b列的int类型的的0到9的十位数

  • np.sum(xxx)求xxx矩阵和

  • np.min(xxx)求xxx矩阵中的最小的元素

  • np.max(xxx)求xxx矩阵中的最大元素

  • np.sum(xxx,axis=0)求xxx矩阵中按列求和,axis代表按列

  • np.sum(xxx,axis=1)求xxx矩阵中按行求和,axis代表按行

  • np.argmin(xxx)求xxx矩阵中最小值的索引值

  • np.argmax(xxx)求xxx矩阵中最大值的索引值

  • np.mean(xxx)xxx.mean()求矩阵中元素的平均值

  • np.median(xxx)求xxx矩阵中的中位数,若为双数求中间两位数的平均值

  • np.sqrt(xxx)xxx矩阵开方

  • np.sort(xxx)矩阵xxx按行排序

  • np.clip(xxx,a,b)小于a的数的值换成a,大于b的值换成b


05 numpy的索引


对1xn式的矩阵:

  • arr[x]索引值为x的数

  • arr[a:b]索引值从a到b的b-a个值

  • arr[a:-x]索引值从a到倒数第x-1个值

  • arr[:a]索引值为前a的数

  • arr[-a:]索引值为到手后a个数

对nxm式的矩阵:

  • arr[a]索引值为第a行的值

  • arr[a][b]arr[a,b]索引值为a,b的值

  • arr[:,a]索引值为a的列

  • for x in arr:遍历行

  • for x in arr.T遍历列

  • for x in arr.flat遍历所有元素


06 array合并


  • np.vstack((arr1,arr2,arr3....))纵向合并

  • np.hstack((arr1,arr2,arr3....))横向合并

  • np.concatenate((arr1,arr2....),axis = 0/1)合并array时,维度要相同,形状要匹配,axis=0是按列合并(纵向合并),axis=1是按行合并(横向合并)

  • np.newaxis给矩阵增加维度

  • np.atleast_1d/2d/3d(arr)判断矩阵是否是一维/二维/三维,若不够维度则增加到满足相应的维度


07 array分割

  • np.split(arr,a,axis = 0/1)将arr分割成a份,通过横向/纵向分割

  • np.array_split(arr,a,axis = 0/1)arr的不等分割

  • np.vsplit(arr,a)垂直分割

  • np.hsplit(arr,a)水平分割


08 numpy的浅拷贝和深拷贝

  • arr1 = arr2浅拷贝,arr1和arr2共享一块内存

  • arr1 = arr2.copy()深拷贝


撒花🌻★,°:.☆( ̄▽ ̄)/$:.°★ 。🌻

文章作者: 安河桥北以北
文章链接: http://chenai007.github.io/2020/03/29/python/Numpy%E7%A7%91%E5%AD%A6%E8%AE%A1%E7%AE%97%E5%BA%93/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ash's blog

评论