Numpy总结

1.Numpy数组

(1)创建数组

1)直接创建

       a=np.array([1,2,3,4])

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

2)使用函数

       b=np.arange(10)

       linspace,ones,zeros,eye.randn,empty

(2)属性

        ndim,shape,stride(跨度)

        dtype(通过astype显示转换)

(3)索引和切片

1)一维

        a[0],a[:4](半开),a[2:8:2](起始,结束,步长),a[::]

2)二维

        a[0,0],a[0][0]

3)布尔数组

        a[a%2==0]

        &,|,~

4)花式索引

利用整数数组进行索引

arr[[4,0,3,6]]

arr[[1,5,7,2],[0,3,1,2]]

arr[[1,5,7,2]][:,[0,3,1,2]]

arr[np.ix_([1,5,7,2],[0,3,1,2])]

(4)2个注意点

1)Numpy总是试图自动把结果转换为行向量

2)Numpy数组是共享内存的,除非显示复制(.copy())

2.Numpy运算

(1)数组和标量

        a+5(每个数加5)

        a*3(每个数乘3)

        比循环速度快

(2)数组和数组

1)维度相同

      对应位置逐个元素进行运算(a+b,c*d)

      矩阵内积np.dot()

      矩阵外积np.multiply.outer(arr,np.arange(5))

2)维度不同

       广播机制

       针对布尔数组,可以使用all()/any()函数来返回布尔数组的标量值

(3)内置函数

       1)线性代数 :dot,T,inv,qr,diag,trace,det,eig,solve,lstsq

       2)随机数 :seed,rand,randint,randn,normal

       3)将条件逻辑表述为数组运算:where(cond,x,y)当cond为True选x,否则选y

       4)统计: sum,mean,std(标准差)var(方差),min,max,argmin,argmax,cumsum(所有元素的累计和),sumprod(所有元素的累计积)

       5)合并和拆分:concatenate([arr1,arr2],axis=0)

       6)元素重复操作: tile和repeat

       7)花式索引: take和put

       8)数组重塑:reshape,ravel(互逆过程),newaxis(传入-1,表示该维度大小由数据本身推断而来)

       9)转置和轴对称:T或transpose

      10)排序:sort(默认升序),argsort

      11)唯一化:np.unique

      12)多项式求解和多项式拟合: 

               创建  p=np.poly1d([1,-4,3])  #x^2-4*x+3

               求根  p.roots

                阶数  p.order

               系数  p.coeffs

               拟合  np.polyfit(x,y,n_order(阶数))

      13)保存和读取:  np.savetxt('a.txt',a),np.loadtxt('a.txt')

(4)通用函数

矢量化包装器

一元ufunc

      abs,sqrt,square,exp,log,sign,ceil,floor,modf,isnan,isinf,cos,cosh,arccos

二元ufunc

      add,substract,multiply,divide,power,maximum,minimum,mod,copysign

(5)C和Fortran顺序

      C,矩阵行优先

      Fortran,矩阵全都是列优先

!!!注意:axis,0表示按行计算,1表示按列计算。

参考书籍:

《利用Python进行数据分析》

《scikit-learn机器学习》

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值