>> import numpy as np
>> help(np.repeat)
>> help(np.tile)
  • 二者执行的是均是复制操作;
  • np.repeat:复制的是多维数组的每一个元素
  • np.tile:复制的是多维数组本身

1. np.repeat

>> x = np.arange(1, 5).reshape(2, 2)
>> np.repeat(x, 2)
array([1, 1, 2, 2, 3, 3, 4, 4])# 对数组中的每一个元素进行复制# 除了待重复的数组之外,只有一个额外的参数时,高维数组也会 flatten 至一维

当然将高维 flatten 至一维,并非经常使用的操作,也即更经常地我们在某一轴上进行复制,比如在行的方向上(axis=1),在列的方向上(axis=0):

>> np.repeat(x, 3, axis=1)
array([[1, 1, 1, 2, 2, 2],[3, 3, 3, 4, 4, 4]])
>> np.repeat(x, 3, axis=0)
array([[1, 2],[1, 2],[1, 2],[3, 4],[3, 4],[3, 4]])

当然更为灵活地也可以在某一轴的方向上(axis=0/1),对不同的行/列复制不同的次数:

>> np.repeat(x, (2, 1), axis=0)
array([[1, 2],[1, 2],[3, 4]])
>> np.repeat(x, (2, 1), axis=1)
array([[1, 1, 2],[3, 3, 4]])

2. np.tile

Python numpy 下的 np.tile有些类似于 matlab 中的 repmat函数。不需要 axis 关键字参数,仅通过第二个参数便可指定在各个轴上的复制倍数。

>> a = np.arange(3)
>> 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]])>> b = np.arange(1, 5).reshape(2, 2)
>> np.tile(b, 2)
array([[1, 2, 1, 2],[3, 4, 3, 4]])# 等价于
>> np.tile(b, (1, 2))

numpy 辨异(四)—— np.repeat 与 np.tile相关推荐

  1. numpy 辨异(三)—— hstack/column_stack,linalg.eig/linalg.eigh

    1. np.hstack np.column_stack >>> np.hstack([np.array([1, 2, 3]), np.array([4, 5, 6])]) arra ...

  2. numpy 辨异(二) —— np.identity()/np.eye()

    import numpy as np; 两者在创建单位矩阵上,并无区别,两者的区别主要在接口上: np.identity(n, dtype=None):只能获取方阵,也即标准意义的单位阵: np.ey ...

  3. numpy 辨异 (五)—— numpy.ravel() vs numpy.flatten()

    首先声明两者所要实现的功能是一致的(将多维数组降位一维),两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflec ...

  4. numpy 辨异(一) —— reshape 与 resize

    0. reshape的参数 reshape的参数严格地说,应该是tuple类型(tuple of ints),似乎不是tuple也成(ints). >>> x = np.random ...

  5. Numpy.array()详解 、np.array与np.asarray辨析、 np.array和np.ndarry的区别

    记录一下numpy.array()的详细用法,以及与np.asarray()和np.ndarray()的区别. 目录 1. Numpy.array()详解 1.1 函数形式 1.2 参数详解 1.3 ...

  6. np.repeat函数

    np.repeat操作!!! numpy.repeat(a,repeats,axis=None); 参数: axis=None,时候就会flatten当前矩阵,实际上就是变成了一个行向量 axis=0 ...

  7. python中使用numpy包的向量矩阵相乘np.dot和np.matmul

    一直对np的线性运算不太清晰,正好上课讲到了,做一个笔记整个理解一下 1.向量和矩阵 在numpy中,一重方括号表示的是向量vector,vector没有行列的概念.二重方括号表示矩阵matrix,有 ...

  8. numpy高级教程之np.where和np.piecewise

    欢迎关注"勇敢AI"公众号,更多python学习.数据分析.机器学习.深度学习原创文章与大家分享,还有更多电子资源.教程.数据集下载.勇敢AI,一个专注于人工智能AI的公众号. = ...

  9. numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray)

    numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray) 原创  2017年02月18日 10:35:43

最新文章

  1. 初创公司为什么要我_在一家大型初创公司担任副总裁之前,我希望知道什么
  2. C++ 类 和 对象!
  3. sort--排序函数
  4. 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 2 assignment2_2
  5. python 效率_Python 运行效率为何低
  6. 20应用统计考研复试要点(part7)--统计学
  7. bInitiallyDisabled实现原理
  8. spring boot redis 分布式锁
  9. SQL:我为什么慢你心里没数吗?
  10. 【netty】BIO通讯模型
  11. java连接mysql数据库 R_Java连接Mysql数据库详细代码实例
  12. CMSampleBufferRef获取h264 char*数据及sps/pps
  13. 富士驱动器ALPHA5手动JOG运行操作
  14. 「高并发秒杀」java使用教程第五版答案
  15. 解决Office桌面图标异常
  16. 视觉组学习内容:Zhang-Suen骨架提取算法
  17. Koo叔说Shader-CG语言介绍
  18. 百度违规屏蔽关键词工具
  19. GOTC 大会预告 | Apache Pulsar PMC 成员翟佳:Apache Pulsar 架构设计与原理
  20. 怎么把视频里的一小段制作成gif图片?教你视频片断做成GIF

热门文章

  1. linux系统中怎么设置网络,vmware中linux怎么设置网络
  2. android 多类型参数,Android的数据绑定-类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...
  3. mysql中datetime有带时区_当服务器时区不是UTC时,从Java中检索来自MySQL的UTC DATETIME字段...
  4. ✨Synchronized底层实现---偏向锁
  5. Mysql中循环拼接参数_利用循环向数据库中插入数据,参数重复的问题
  6. scala集合基本介绍
  7. LeetCode 106. 从中序与后序遍历序列构造二叉树(递归)
  8. Linux 完全卸载重装opencv
  9. CUDA编程:与OpenCV结合
  10. 每天一算法(二)实现栈的push pop 操作,并可以输出栈的最小值