简介
tile()函数是在Python的numpy.lib.shape_base库中,其功能是平铺所给的数组。
- 注意:使用前需import numpy
import库或模块的三种方法(以numpy库为例)
- import numpy
说明:import整个numpy库,在import时简单,但使用时麻烦,其缺点在于:
1、调用整个库或模块浪费时间和资源,尤其是需要多个库或模块支撑时。
2、在使用其中的函数使需要有numpy.来限定,否则会报错,如 numpy.tile()- from numpy import *
说明:import numpy库中的任意函数,*为通配符,与上一种方式的不同之处在于不需要库名来限定(常用这种方法)- from numpy import tile
说明:仅仅import numpy库中的tile()函数
格式
- tile(A, reps)
- A:输入的数组(array)
- reps:数组A重复的次数;可以有两种形式(数字和二维元组)
tile的本意有“铺以瓷砖,铺以瓦”的意思,即将数组视为瓷砖,在一个平面上将此数组平铺开来(数字对应一维,元组对应二维 tuple(纵铺个数,横铺个数)
返回值
返回平铺后的数组(array)
举例
我们先给定一个2维数组
from numpy import *
c = array([[1,2],[3,4]])
print(c)
Output:
[[1 2]
[3 4]]
1、横向平铺
print(tile(c,4))
#等效为print(tile(c,(1,4)))
Output:
[[1 2 1 2 1 2 1 2]
[3 4 3 4 3 4 3 4]]
2、纵向平铺
print(tile(c,(3,1)))
Output:
[[1 2]
[3 4]
[1 2]
[3 4]
[1 2]
[3 4]]
3、横向纵向平铺
print(tile(c,(3,4)))
Output:
[[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]]
机器学习实例
- kNN中,在计算距离时,需要用到此函数来对目标向量进行扩展,进而得到与各个实例的差值数组(代码来自《机器学习实战》-Ch2)
diffMat = tile(inX, (dataSetSize,1)) - dataSet
def classify0(inX, dataSet, labels, k):
dataSetSize = dataSet.shape[0]#读取数据集第一维度的长度,即行数。
#计算距离
diffMat = tile(inX, (dataSetSize,1)) - dataSet#目标向量与dataSet的差值数组
sqDiffMat = diffMat**2 # ** 为指数表达式pow
sqDistances = sqDiffMat.sum(axis=1)
distances = sqDistances**0.5
sortedDistIndicies = distances.argsort()
参考
1、图解Numpy的tile函数
2、《机器学习实战》
版权声明:本文为weixin_41998772原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。