zoukankan      html  css  js  c++  java
  • np.repeat 与 np.tile

    1.Numpy的 tile() 函数,就是将原矩阵横向、纵向地复制。tile 是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来。

    举个例子,原矩阵:

    import numpy as np
    mat = np.array([[1,2], [3, 4]])

    横向:

    print(np.tile(mat,(1, 4)))
    #等同于
    print(np.tile(mat, 4))
    [[1 2 1 2 1 2 1 2]
     [3 4 3 4 3 4 3 4]]
    [[1 2 1 2 1 2 1 2]
     [3 4 3 4 3 4 3 4]]

      

    纵向:

    np.tile(mat, (3, 1))
    array([[1, 2],
           [3, 4],
           [1, 2],
           [3, 4],
           [1, 2],
           [3, 4]])

      

    横向 + 纵向

    np.tile(mat, (3, 4))
    array([[1, 2, 1, 2, 1, 2, 1, 2],
           [3, 4, 3, 4, 3, 4, 3, 4],
           [1, 2, 1, 2, 1, 2, 1, 2],
           [3, 4, 3, 4, 3, 4, 3, 4],
           [1, 2, 1, 2, 1, 2, 1, 2],
           [3, 4, 3, 4, 3, 4, 3, 4]])

      

    2. repeat函数功能:对数组中的元素进行连续重复复制 

    用法有两种:

    1) numpy.repeat(a, repeats, axis=None)

    2) a.repeats(repeats, axis=None)   

    参数:

    : array_like 输入数组。

    repeats: int或int数组 每个元素的重复次数。 广播重复以适合给定轴的形状。

    axis : int,可选  沿其重复值的轴。默认情况下,使用展平的输入数组,并返回一个平面输出数组。

    返回: repeated_array : ndarray  输出阵列,其具有相同的形状作为一个,除了沿给定轴。

    from numpy import *
    repeat(7.,4)
    ==> array([7., 7., 7., 7.]
    
    a=array([10,20])
    a.repeat([3,2])
    ==>array([10, 10, 10, 20, 20])
    
    
    repeat(a,[3,2])
    ==>array([10, 10, 10, 20, 20])
    
    a=array([[10,20],[30,40]])
    a.repeat([3,2],axis=0)
    ==>
    array([[10, 20],
           [10, 20],
           [10, 20],
           [30, 40],
           [30, 40]])
    
    
    a.repeat([3,2],axis=1)
    ==>
    array([[10, 10, 10, 20, 20],
               [30, 30, 30, 40, 40]])
    

      

  • 相关阅读:
    巩固复习(对以前的随笔总结)_01
    Django 项目分析后得到的某些结论
    django 命令行命令
    实现搜索视频到播放(非原创)
    python 打包
    随笔汇总,温故知新
    找伙伴
    sam-Toy Cars
    反质数
    Blue Mary的战役地图
  • 原文地址:https://www.cnblogs.com/nxf-rabbit75/p/10055932.html
Copyright © 2011-2022 走看看