首先是官方给的定以(我是用的VsCode,鼠标放置在tile上出现的),建议直接看后面的示例。
 
def tile(A, reps)

Construct an array by repeating A the number of times given by reps.

If reps has length d, the result will have dimension of max(d, A.ndim).

If A.ndim < dA is promoted to be d-dimensional by prepending new axes. So a shape (3,) array is promoted to (1, 3) for 2-D replication, or shape (1, 1, 3) for 3-D replication. If this is not the desired behavior, promote A to d-dimensions manually before calling this function.

If A.ndim > dreps is promoted to A.ndim by pre-pending 1's to it. Thus for an A of shape (2, 3, 4, 5), a reps of (2, 2) is treated as (1, 1, 2, 2).

Note : Although tile may be used for broadcasting, it is strongly recommended to use numpy's broadcasting operations and functions.

Parameters

A : array_like

The input array.

reps : array_like

The number of repetitions of `A` along each axis.

Returns

c : ndarray

The tiled output array.

See Also

repeat : Repeat elements of an array. broadcast_to : Broadcast an array to a new shape

Examples

a = np.array([0, 1, 2])

np.tile(a, 2)     /*列(水平方向)重复2次 */

array([0, 1, 2, 0, 1, 2])

这里的可以理解为a向右复制,同理,理解为a向下复制。复制次数包括本身(即2为复制1次,加上原来的为2个)。

当参数仅1个时候(如上),默认水平方向复制。

当参数为2个时候(如下),则第一个表示行(垂直方向)复制,第二个表示会列(水平方向)复制。

np.tile(a, (3, 2))    /*行(垂直方向)重复3次,列(水平方向)重复2次*/

array([[0, 1, 2, 0, 1, 2],

[0, 1, 2, 0, 1, 2],

          [0, 1, 2, 0, 1, 2]])
Note: 1或者2参数时候可以以上面的理解,下面的就不太适合了。
 
 
下面这一个的话,从最右的开始往左,先是列(水平方向)重复2次,垂直方向不动,然后整体的二维复制一下(不知道方向了);下面再举一个对应的例子

np.tile(a, (2, 1, 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]],

           [[0, 1, 2, 0, 1, 2],
            [0, 1, 2, 0, 1, 2]]])
 
 
 
当参数仅1个时候(如下),默认水平方向复制。整个b向右(水平方向)复制。

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

np.tile(b, 2)

array([[1, 2, 1, 2],

          [3, 4, 3, 4]])
 
当参数为2个时候(如下),则第一个表示行(垂直方向)复制2次,第二个表示会列(水平方向)复制1次(1次即保持原型)。

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]])
 
 
PS: 上述仅为个人理解以及记录,如能帮助到你,很开心,如有错误也烦请指正。
 
 

Python--numpy中的tile()函数的更多相关文章

  1. Python:numpy中的tile函数

    在学习机器学习实教程时,实现KNN算法的代码中用到了numpy的tile函数,因此对该函数进行了一番学习: tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复 ...

  2. numpy中的tile函数

    tile()函数可以很方便的生成多维数组.它有两个参数,第一个数是原始数组;第二个表示如何来生成,第一个数字表示生成几行,第二个表示每行有多少个原始数组(如果只写一个数字,那么就默认是一行). fro ...

  3. Python数据分析--Numpy常用函数介绍(5)--Numpy中的相关性函数

    摘要:NumPy中包含大量的函数,这些函数的设计初衷是能更方便地使用,掌握解这些函数,可以提升自己的工作效率.这些函数包括数组元素的选取和多项式运算等.下面通过实例进行详细了解. 前述通过对某公司股票 ...

  4. Python numpy中矩阵的用法总结

    关于Python Numpy库基础知识请参考博文:https://www.cnblogs.com/wj-1314/p/9722794.html Python矩阵的基本用法 mat()函数将目标数据的类 ...

  5. 在python&numpy中切片(slice)

     在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...

  6. 转载 为什么print在Python 3中变成了函数?

    转载自编程派http://codingpy.com/article/why-print-became-a-function-in-python-3/ 原作者:Brett Cannon 原文链接:htt ...

  7. python 中的tile函数,shape函数,sum函数

    1.tile函数: tile函数是模板numpy.lib.shape_base中的函数.函数的形式是tile(A,reps) A的类型几乎所有类型都可以:array, list, tuple, dic ...

  8. Python numpy 中常用的数据运算

    Numpy 精通面向数组编程和思维方式是成为Python科学计算大牛的一大关键步骤.——<利用Python进行数据分析> Numpy(Numerical Python)是Python科学计 ...

  9. 嵌入Python系列 | 调用Python模块中无参数函数

    开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...

  10. Numpy中扁平化函数ravel()和flatten()的区别

    在Numpy中经常使用到的操作由扁平化操作,Numpy提供了两个函数进行此操作,他们的功能相同,但在内存上有很大的不同. 先来看这两个函数的使用: from numpy import * a = ar ...

随机推荐

  1. Java:手写幼儿园级线程安全LRU缓存X探究影响命中率的因素

    最近遇到一个需求,需要频繁访问数据库,但是访问的内容只是 id + 名称 这样的简单键值对. 频繁的访问数据库,网络上和内存上都会给数据库服务器带来不小负担. 于是打算写一个简单的LRU缓存来缓存这样 ...

  2. C. p-binary(二进制暴力)

    \(设最后的答案为t,那么有\) $$2^+2^+...2^+tp=n$$ \(那我们完全可以枚举这个t,判断n-tp(我们下面记为z)能刚好被t个二进制表示\) \(首先,z如果小于t,那一定无法表 ...

  3. CC2530入门

    一.简介 单片机(MCU)就是一个将微型计算机系统制作到里面的集成电路芯片. 微控制器的基本结构:内核+外设.内核通过寄存器控制外设:外设通过中断系统通知内核:内核与外设之间通过总线传输数据.地址及控 ...

  4. 王颖奇 20171010129《面向对象程序设计(java)》第九周学习总结

    实验九 异常.断言与日志 实验时间 2018-10-25 1.实验目的与要求 (1) 掌握java异常处理技术: (2) 了解断言的用法: (3) 了解日志的用途: (4) 掌握程序基础调试技巧: 2 ...

  5. CF#633 D. Edge Weight Assignment

    D. Edge Weight Assignment 题意 给出一个n个节点的树,现在要为边赋权值,使得任意两个叶子节点之间的路径权值异或和为0,问最多,最少有多少个不同的权值. 题解 最大值: 两个叶 ...

  6. Java TCP案例网络聊天室

    收获:1,加深了对多线程的一边一边的理解,可以将行为写成不同的类然后多线程 2,IO流的复习! 3,多线程中一边读取一边操作时容器最好(CopyOnWriteArrayList); 4,Tcp流程的熟 ...

  7. 《机器学习_01_线性模型_线性回归_正则化(Lasso,Ridge,ElasticNet)》

    一.过拟合 建模的目的是让模型学习到数据的一般性规律,但有时候可能会学过头,学到一些噪声数据的特性,虽然模型可以在训练集上取得好的表现,但在测试集上结果往往会变差,这时称模型陷入了过拟合,接下来造一些 ...

  8. helm使用

    helm 0. helm安装 基本上到github上面,下载二进制就行.mac的话用brew安装. https://github.com/helm/helm brew: brew install ku ...

  9. svn简单用法

    svn checkout  .. dir  ,选rw 的那个目录 svn up( update) svn add .. svn commit .. -m "add sth"  这里 ...

  10. 数据库常见考题查询SQL

    1.列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 执行查询: select count(*), a.deptid from employee a groub by depti ...