zoukankan      html  css  js  c++  java
  • ipython --之Numpy

    定义:

    NumPy是高性能科学计算和数据分析的基础包。它是pandas等其他各种工具的基础。

    NumPy的主要功能:

    ndarray,一个多维数组结构,高效且节省空间

    无需循环对整组数据进行快速运算的数学函数

    *读写磁盘数据的工具以及用于操作内存映射文件的工具

    *线性代数、随机数生成和傅里叶变换功能

    *用于集成C、C++等代码的工具

    安装方法:pip install numpy
    
    引用方式:import numpy as np

    二:ndarray-多维数组对象

    ndarray是多维数组结构,

    与列表的区别是: 1,数组对象内的元素类型必须相同 2,数组大小不可修改

     

     

     

    五:实例:

    j=[1,2,3,4,5]
    r=[2,3,4,5,6]
    
    j=np.array(j)
    r=np.array(r)
    l=j*r
    ==>l
    array([2,6,12,20,30])
    两个array相乘
    arr=np.array[[1,2,3],[2,3,4]]
    arr.T
    
    ==>
    array([[1, 2],
           [2, 3],
           [3, 4]])
    arr.T
    arr=array([[1, 2],
           [2, 3],
           [3, 4]])
    
    arr.dtype  ===dtype('int32')
    arr.size==6
    arr.ndim==2
    arr.shape==(2,3)  PS:数组形式   表示维度大小
    size,ndim,dtype,shape
    arr=np.array([1.2,3.4,5.6])
    arr=arr.astype('int')
    
    ==>array([1, 3, 5])  去出小数,取整数
    
    np.arange(1,10,0.2)  #range的翻版
    
    ==>
    array([1. , 1.2, 1.4, 1.6, 1.8, 2. , 2.2, 2.4, 2.6, 2.8, 3. , 3.2, 3.4,
           3.6, 3.8, 4. , 4.2, 4.4, 4.6, 4.8, 5. , 5.2, 5.4, 5.6, 5.8, 6. ,
           6.2, 6.4, 6.6, 6.8, 7. , 7.2, 7.4, 7.6, 7.8, 8. , 8.2, 8.4, 8.6,
           8.8, 9. , 9.2, 9.4, 9.6, 9.8])
    astype,arange,
    np.zeros((1,2,3),dtype='int')
    ==>
    array([[[0, 0, 0],
            [0, 0, 0]]])
    #一个数组,二横,三列
    
    np.ones((2,3,4),dtype='int')
    ==>
    array([[[1, 1, 1, 1],
            [1, 1, 1, 1],
            [1, 1, 1, 1]],
    
           [[1, 1, 1, 1],
            [1, 1, 1, 1],
            [1, 1, 1, 1]]])
    #2个大数组,三横,四列
    
    np.empty((4,6),dtype='int')
    
    array([[2057632264,        371,         64,          0,          0,
                     0],
           [         0,          0,          0,    7209071, 1684222001,
             811755057],
           [1630679653, 1684300646,  808871475,  895628336,  842294836,
             912417377],
           [ 892757348,  892809574, 1701012792,  959789410, 1697735986,
            1633890917]])
    
    #4横6列的随机数
    
    np.eye(4,dtype='int')
    
    array([[1, 0, 0, 0],
           [0, 1, 0, 0],
           [0, 0, 1, 0],
           [0, 0, 0, 1]])
    #边长为5的数组
    zeros,ones,eye,empty
    arr=np.arange(20).reshape(4,5)
    
    
    array([[ 0,  1,  2,  3,  4],
           [ 5,  6,  7,  8,  9],
           [10, 11, 12, 13, 14],
           [15, 16, 17, 18, 19]])
    reshape
    array([[ 0,  1,  2,  3,  4],
           [ 5,  6,  7,  8,  9],
           [10, 11, 12, 13, 14],
           [15, 16, 17, 18, 19]])
    
    arr[1][3] ==8
    
    arr[1,3] ==8
    切片
    array([[ 0,  1,  2,  3,  4],
           [ 5,  6,  7,  8,  9],
           [10, 11, 12, 13, 14],
           [15, 16, 17, 18, 19]])
    arr[1:3,2:4]
    
    ==>
    array([[ 7,  8],
           [12, 13]])
    
    #他是取第一行和第二行
    再从第一行和第二行之间取  2-4列的数
    切片拓展
    b=[random.randint(1,10) for i in range(20)
    list(filter(lambda x:x>5,b))
    
    ==>
    [9, 9, 9, 9, 8, 7, 10]
    filter
    array([[ 0,  1,  2,  3,  4],
           [ 5,  6,  7,  8,  9],
           [10, 11, 12, 13, 14],
           [15, 16, 17, 18, 19]])
    
    arr2[:,[1,3]][[1,3],:]
    
    array([[ 6,  8],
           [16, 18]])
    切片再深度
    arr=array([ 2,  2,  1,  2,  9,  1,  2,  2,  9,  9,  3,  9,  5,  1,  5,  8,  2,
            7, 10,  1])
    
    arr(arr.arange(0,arr.size,2)
    ==>
    array([ 2,  1,  9,  2,  9,  3,  5,  5,  2, 10])
    
    arr(arr.arange(0,arr.size,4)
    array([2, 9, 9, 5, 2])
    arange, ~
    arr = np.array([random.uniform(-5,5) for _ in range(20)])
    
    array([ 4.04565696,  1.19190597,  0.63930306,  3.07415326,  3.17752185,
            4.25314581, -3.13307449, -1.1630629 , -3.38121501, -1.99839443,
            3.13160442, -2.29378581,  2.58989142,  4.46074874, -0.24500954,
           -1.63483659,  3.54216199, -4.35408201,  0.12284761,  2.26431038])
    
    np.abs(arr) ** 0.5
    array([ 2.01138185,  1.09174446,  0.79956429,  1.75332634,  1.78256048,
            2.06231564,  1.77004929,  1.07845394,  1.83880804,  1.41364579,
            1.76963398,  1.51452495,  1.60931396,  2.11204847,  0.49498438,
            1.27860729,  1.88206323,  2.08664372,  0.35049624,  1.50476257])
    
    
    ceil:向上取整 3.6 -》4 3.1-》4 -3.1-》-3
    
    floor:向下取整:3.6-》3 3.1-》3 -3.1-》-4
    
    rint(round):四舍五入:3.6-》4 3.1-》3 -3.6-》-4
    
    trunc(int):向零取整(舍去小数点后) 3.6-》3 3.1-》3 -3.1-》-3
    
    
    a,b=np.modf(arr)
    
    (array([ 0.04565696,  0.19190597,  0.63930306,  0.07415326,  0.17752185,
             0.25314581, -0.13307449, -0.1630629 , -0.38121501, -0.99839443,
             0.13160442, -0.29378581,  0.58989142,  0.46074874, -0.24500954,
            -0.63483659,  0.54216199, -0.35408201,  0.12284761,  0.26431038]),
     array([ 4.,  1.,  0.,  3.,  3.,  4., -3., -1., -3., -1.,  3., -2.,  2.,
             4., -0., -1.,  3., -4.,  0.,  2.]))
    uniform,abs,rint,modf,inf
    arr=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    arr.cumsum()
    
    ==>
    array([ 0,  1,  3,  6, 10, 15, 21, 28, 36, 45], dtype=int32)
    arr.cumsum()
    np.random.choice([2,3,4,5,6,7],(1,5))
    
    array([[7, 2, 2, 3, 7]])
    choice
  • 相关阅读:
    js每天进步一点点
    优化数据库的方法及SQL语句优化的原则
    实用js代码大全
    【怒转】 idea快捷键说明大全(中英文对照)
    正则表达式手册
    Flink分布式缓存Distributed Cache
    初识Flink广播变量broadcast
    怒转一波,此人整理的Flink特别好
    flink批处理中的source以及sink介绍
    初识Flink-从WorldCount开始
  • 原文地址:https://www.cnblogs.com/52forjie/p/8379569.html
Copyright © 2011-2022 走看看