• 数据分析学习笔记1---zip(),numpy.where


    1.zip()函数

    zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

    我们可以使用 list() 转换来输出列表。

    如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

    >>>a = [1,2,3]
    >>> b = [4,5,6]
    >>> c = [4,5,6,7,8]
    >>> zipped = zip(a,b)     # 返回一个对象
    >>> zipped
    <zip object at 0x103abc288>
    >>> list(zipped)  # list() 转换为列表
    [(1, 4), (2, 5), (3, 6)]
    >>> list(zip(a,c))              # 元素个数与最短的列表一致
    [(1, 4), (2, 5), (3, 6)]
     
    >>> a1, a2 = zip(*zip(a,b))          # 与 zip 相反,*zip 可理解为解压,返回二维矩阵式
    >>> list(a1)
    [1, 2, 3]
    >>> list(a2)
    [4, 5, 6]
    >>>

    2.numpy.where函数

    三元表达式x if condition else y的矢量化版本

    In [165]: xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])
    In [166]: yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])
    In [167]: cond = np.array([True, False, True, True, False])
    In [170]: result = np.where(cond, xarr, yarr) #根据cond中的值选取xarr和yarr的值:当cond中的值为True时,选取xarr的值,否则从yarr中选取
    
    In [171]: result
    Out[171]: array([ 1.1,  2.2,  1.3,  1.4,  2.5])

    有一个由随机数据组成的矩阵,你希望将所有正值替换为2,将所有负值替换为-2

    In [172]: arr = np.random.randn(4, 4)
    
    In [173]: arr
    Out[173]: 
    array([[-0.5031, -0.6223, -0.9212, -0.7262],
           [ 0.2229,  0.0513, -1.1577,  0.8167],
           [ 0.4336,  1.0107,  1.8249, -0.9975],
           [ 0.8506, -0.1316,  0.9124,  0.1882]])
    
    In [174]: arr > 0
    Out[174]: 
    array([[False, False, False, False],
           [ True,  True, False,  True],
           [ True,  True,  True, False],
           [ True, False,  True,  True]], dtype=bool)
    
    In [175]: np.where(arr > 0, 2, -2)
    Out[175]: 
    array([[-2, -2, -2, -2],
           [ 2,  2, -2,  2],
           [ 2,  2,  2, -2],
           [ 2, -2,  2,  2]])

    3.数学和统计方法

    arr.mean(1)是“计算行的平均值”,arr.sum(0)是“计算每列的和”。

    In [177]: arr = np.random.randn(5, 4)
    
    In [178]: arr
    Out[178]: 
    array([[ 2.1695, -0.1149,  2.0037,  0.0296],
           [ 0.7953,  0.1181, -0.7485,  0.585 ],
           [ 0.1527, -1.5657, -0.5625, -0.0327],
           [-0.929 , -0.4826, -0.0363,  1.0954],
           [ 0.9809, -0.5895,  1.5817, -0.5287]])
    
    In [182]: arr.mean(axis=1)
    Out[182]: array([ 1.022 ,  0.1875, -0.502 , -0.0881,  0.3611])
    
    In [183]: arr.sum(axis=0)
    Out[183]: array([ 3.1693, -2.6345,  2.2381,  1.1486])
  • 相关阅读:
    SQL SERVER 运维日记
    openstack
    Java GC 日志详解
    突破 BTrace 安全限制
    End-to-End Tracing of Ajax/Java Applications Using DTrace
    调试工具BTrace 的使用--例子
    btrace-dtrace-for-java-ish
    DTrace Probes in HotSpot VM
    DTrace memory leak 内存泄露
    Java-JVM-GC
  • 原文地址:https://www.cnblogs.com/helloluo/p/9688348.html
Copyright © 2020-2023  润新知