zoukankan      html  css  js  c++  java
  • 数据分析学习笔记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])
  • 相关阅读:
    【Python必学】Python爬虫反爬策略你肯定不会吧?
    SpringBoot_日志-切换日志框架
    dev、test和prod是什么意思
    SpringBoot_日志-指定日志文件和日志Profile功能
    SpringBoot_日志-SpringBoot默认配置
    SpringBoot_日志-SpringBoot日志关系
    SpringBoot_日志-其他日志框架统一转换为slf4j
    SpringBoot_日志-日志框架分类和选择
    SpringBoot_配置-@Conditional&自动配置报告
    gcc系列工具 介绍
  • 原文地址:https://www.cnblogs.com/helloluo/p/9688348.html
Copyright © 2011-2022 走看看