• Numpy中的tile函数用法


    0、引言

     在看机器学习实战这本书时,遇到numpy.tile(A,B)函数,开始没太明白这个函数用法,网上帖子也不太详细,经过一番试验后基本搞明白基本用法,分享给大家。

    1、函数定义

    tile函数是模板numpy.lib.shape_base中的函数。

    函数形式:tile(A,rep) 
    功能:重复A的各个维度 
    参数类型: 
    - A:
    Array类的都可以 
    - rep:
    A沿着各个维度重复的次数,从低维向高维重复
    -A的类型众多,几乎所有类型都可以:array, list, tuple, dict, matrix以及基本数据类型int, string, float以及bool类型。
    -reps的类型也很多,可以是tuple,list, dict, array, int,bool.但不可以是float, string, matrix类型。
     

    2、函数运行原理:

    A=[a1,a2,...,am]
    rep=[r1,r2,...,rn]
    C=tile(A, rep)
    rep重复A的顺序是由后往前依次重复上一次的结果,每次重复维度都提高一级。
    Step1:C1=[(a1,a2,...,am)1,(a1,a2,...,am)2,...,(a1,a2,...,am)rn]
    Step2:C2=[(C1)1,(C1)2,...,(C1)rn-1]
    ...
    Stepm:Cm=[(Cm-1)1,(Cm-1)2,...,(Cm-1)rn-m+1]
     

    3、函数用法举例:

    A=[0,1]
    rep=(2,3,4)
    C=tile(A,rep)
     
    Step1:
    C1=[0,1,0,1,0,1,0,1]
     
    Step2:
    C2=

    [[0 1 0 1 0 1 0 1]
    [0 1 0 1 0 1 0 1]
    [0 1 0 1 0 1 0 1]]

    Step3:
    C3=

    [[[0 1 0 1 0 1 0 1]
    [0 1 0 1 0 1 0 1]
    [0 1 0 1 0 1 0 1]]

    [[0 1 0 1 0 1 0 1]
    [0 1 0 1 0 1 0 1]
    [0 1 0 1 0 1 0 1]]]

    4、更多函数用法示例:

    Examples
    --------
    >>> a = np.array([0, 1, 2])
    >>> np.tile(a, 2)
    array([0, 1, 2, 0, 1, 2])
    >>> np.tile(a, (2, 2))
    array([[0, 1, 2, 0, 1, 2],
    [0, 1, 2, 0, 1, 2]])
    >>> np.tile(a, (2, 1, 2))
    array([[[0, 1, 2, 0, 1, 2]],
    [[0, 1, 2, 0, 1, 2]]])

    >>> b = np.array([[1, 2], [3, 4]])
    >>> np.tile(b, 2)
    array([[1, 2, 1, 2],
    [3, 4, 3, 4]])
    >>> np.tile(b, (2, 1))
    array([[1, 2],
    [3, 4],
    [1, 2],
    [3, 4]])

    >>> c = np.array([1,2,3,4])
    >>> np.tile(c,(4,1))
    array([[1, 2, 3, 4],
    [1, 2, 3, 4],
    [1, 2, 3, 4],
    [1, 2, 3, 4]])






  • 相关阅读:
    Python超级篇-机器学习
    python高给篇-爬虫
    机器学习之-sklearn
    luogu3384 【模板】树链剖分
    bzoj3884 上帝与集合的正确用法
    luogu2765 魔术球问题
    poj2976 Dropping tests 01分数规划
    luogu2764 最小路径覆盖问题
    luogu2763 试题库问题
    luogu2762 太空飞行计划问题
  • 原文地址:https://www.cnblogs.com/yxdz-hit/p/8128021.html
Copyright © 2020-2023  润新知