• Python中flatten( )函数及函数用法详解


    flatten()函数用法

    flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组

    flatten只能适用于numpy对象,即array或者mat,普通的list列表不适用!。

    a.flatten():a是个数组,a.flatten()就是把a降到一维,默认是按行的方向降 。
    a.flatten().A:a是个矩阵,降维后还是个矩阵,矩阵.A(等效于矩阵.getA())变成了数组。

    具体看下面的例子:

    1.用在数组

    >>> a = [[1,3],[2,4],[3,5]]
    >>> a = array(a)
    >>> a.flatten()
    array([1, 3, 2, 4, 3, 5])
    

    2.用在矩阵(mat是numpy中转化为矩阵的函数)

    >>> a = [[1,3],[2,4],[3,5]]
    >>> a = mat(a)
    >>> y = a.flatten()
    >>> y
    matrix([[1, 3, 2, 4, 3, 5]])
    >>> y = a.flatten().A
    >>> y
    array([[1, 3, 2, 4, 3, 5]])
    >>> shape(y)
    (1, 6)
    >>> shape(y[0])
    (6,)
    >>> y = a.flatten().A[0]
    >>> y
    array([1, 3, 2, 4, 3, 5])
    

    可以看到矩阵在使用flatten之后还是矩阵matrix,在使用.A之后才变成数组
    3.用在列表

    >>> a = [[1,3],[2,4],[3,5]]
    >>> a.flatten()
     
    Traceback (most recent call last):
     File "<pyshell#10>", line 1, in <module>
      a.flatten()
    AttributeError: 'list' object has no attribute 'flatten'
    

    正确的用法:

    >>> a = [[1,3],[2,4],[3,5],["abc","def"]]
    >>> a1 = [y for x in a for y in x]
    >>> a1
    [1, 3, 2, 4, 3, 5, 'abc', 'def']
    

    这就是flatten的一些用法,有错误欢迎指正!

  • 相关阅读:
    Python学习资料
    异常
    I/O
    Python3+迭代器与生成器
    python标准数据类型
    人工智能、机器学习和深度学习
    原地排序和复制排序
    序列化和Json
    登陆加密小程序
    hashlib模块加密用法
  • 原文地址:https://www.cnblogs.com/ycycn/p/13872045.html
Copyright © 2020-2023  润新知