jupyter 之 Numpy

Numpy-- Numeric python :是python 的一种开源数值计算扩展。

            1. 一个强大的N维数组

             2.比较成熟的(广播)函数库;

         3. 用于整合c/c++ 和 Fortrant代码的工具包;

         4.实用 的线性代表,傅里叶变换和随机数生成函数;

         5.Numpy 和稀疏矩阵运算scipy 配合使用更加强大;

使用  Numpy.array() 由python list 创建

    注意:*  numpy默认ndarrey 的所有元素类型是相同的;

              *  如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float > int

1.  使用np.array(Python list)

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

2, 使用  routines 创建

  1)  np.ones( shape  , dtype=None , order = "c")

         np.ones((3,4),dtype = str)

    array([['1', '1', '1', '1'],

       ['1', '1', '1', '1'],
       ['1', '1', '1', '1']],
      dtype='<U1')

 2 )     np.zeros(shape , dtypt=None , order = 'c')

         同上,只不过所有值为 ‘ 0’

3) np.full(shape,fill_value,dtype= None,order = 'C')

      同上,fill_value,为填充值,也就是想要的参数

4 ) np.eye(N,M=None,k=0,dtype=float)

       对角线位置为 1 ,其他位置为  0

5)  np.linspace(start, stop, num=50,endint=True,retste=False,dtype=None)

      线性 均匀划分  num = 划分个np.linspace(1,20,10)数 、

      np.linspace(1,20,10)

array([  1.        ,   3.11111111,   5.22222222,   7.33333333,
         9.44444444,  11.55555556,  13.66666667,  15.77777778,

17.88888889, 20. ])

6)np.arange([start,]stop,[step,]dtype=None)

np.arange(0,50,10)

array([ 0, 10, 20, 30, 40])

7)np.random.randint(0,150,size = 5) 随机生成 5 个数

8)np.random.randn(d0,d1,.....dn)

标准正太分布 d 为个数,一个即可

9)np.random.normal(loc = num,scale = 0,size = 100)

loc 正太分布的锚点, scale 表示波动范围 ,size 表示生成个数

10)np.random.random(size= none)

生成 0 到一 随机数字 ,size 表示生成个数或者维度(3,4,5)

2 ndarray 的基本操作

 1).索引

     与 python 列表相同,一维 与 多维 同理

 2)切片

     与 Python 相同 ,切片注意维度,左闭右开

3)变形 reshape  

     注意: 参数是一个元祖

    num.reshape()    如果为负数,转换为 一维数组

4)级联

     np.concatenate()  级联需要注意的点:

      ~级联参数是列表: 一定要加中括号或者小括号

      ~维度必须相同

      ~形状相符

     ~【重点】  级联的方向默认是 shape 这个tuple的第一个值所代表的维度方向

     ~ 通过 axis  参数 改变级联的方向

    vstack      垂直级联   np.vstack

    hstack     水平级联    np.hstack   多维数组使用 hstack 会降 一个维度

5) 切分  split : 与分片不同,切片使用 split 函数 ,根据下标起开,显示所有

     np.split(ary, indices_or_section,axis=0)

      axis = 1 对列进行切分

     vsplit  竖直方向切分

     hsplit  水平方向切分

6) 副本

   jupyter 中 所有的赋值运算不会为ndarray 的任何元素创建副本,

   对赋值后的对象的操作,也对原来的对象生效

4 聚合操作

   1) 最大  最小值  np.max / np.min

       axis 的值为 各个维度的下标,最大值为 len(n.shape - 1)

   2) 平均值  np.mean

   3) 求和  np.sum

  4) 求数组里最小值的下标     np.argmin(array)

 5)   求数组里最大值的下标    np.argmax(array)  

6)   寻找数组里符合条件的值  np.argwhere(  )       

 7) 将一维数组里面的某几个值转换为需要的的 多维数组

     n7 = np.array([31, 50, 50, 46, 94, 18, 53,  2, 10, 94])

       n8 = n7[np.array[ [0], [1] ]

      n8 = np.array([  [31],  [50]  ])

      n8.shape   = ( 2,  1 )

 五,矩阵 的加减乘除

 六  ndarray 的排序

   



  

    

      

    


 
 

 

猜你喜欢

转载自blog.csdn.net/shilaike2/article/details/80295762
今日推荐