专栏首页深度学习之tensorflow实战篇python 对矩阵进行复制操作 np.repeat 与 np.tile区别

python 对矩阵进行复制操作 np.repeat 与 np.tile区别

python 对矩阵进行复制操作 np.repeat 与 np.tile区别

二者区别

二者执行的是均是复制操作; np.repeat:复制的是多维数组的每一个元素;axis来控制复制的行和列 np.tile:复制的是多维数组本身; import numpy as np 通过help 查看基本的参数 help(np.repeat) help(np.tile)

案例对比

np.repeat
x = np.arange(1, 5).reshape(2, 2)
print(x)
[[1 2]
 [3 4]]
print(np.repeat(x, 2))
[1 1 2 2 3 3 4 4]

对数组中的每一个元素进行复制 除了待重复的数组之外,只有一个额外的参数时,高维数组也会 flatten 至一维

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

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

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

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

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

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

a = np.arange(3)
print(a)
[0 1 2]
print(np.tile(a, 2))
[0 1 2 0 1 2]
print(np.tile(a, (2, 2)))
[[0 1 2 0 1 2]
 [0 1 2 0 1 2]]

第二个参数便可指定在各个轴上的复制倍数。

b = np.arange(1, 5).reshape(2, 2)
print(b)
[[1 2]
 [3 4]]
print(np.tile(b, 2))
[[1 2 1 2]
 [3 4 3 4]]
print(np.tile(b, (1, 2)))
[[1 2 1 2]
 [3 4 3 4]]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 中numpy基本方法总结可以类推tensorflow

    学到老
  • python 中numpy基本方法总结可以类推tensorflow

    一、数组方法 创建数组:arange()创建一维数组;array()创建一维或多维数组,其参数是类似于数组的对象,如列表等 反过来转换则可以使用numpy.n...

    学到老
  • python如何保存矩阵,保存matrix,保存numpy.ndarray

    问题:如何将array保存到txt文件中?如何将存到txt文件中的数据读出为ndarray类型?python如何保存矩阵,保存matrix,保存numpy.nd...

    学到老
  • 100个Numpy练习【3】

    翻译:YingJoy 网址: https://www.yingjoy.cn/ 来源: https://github.com/rougier/numpy-100...

    YingJoy_
  • Numpy入门

    NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

    俺也想起舞
  • 我的机器学习numpy篇何为ndarray?ndarry创建生成正态分布ndarry属性修改形状ndarry运算ndarry切片矩阵转置聚合函数

    前言: numpy是以矩阵为基础的数学计算模块,其基础为多维数组为ndarray 官方文档:(https://docs.scipy.org/doc/nump...

    DC童生
  • 详解 | 如何用Python实现机器学习算法

    作者 | Lawlite 人生苦短,就用 Python。 在 Kaggle 最新发布的全球数据科学/机器学习现状报告中,来自 50 多个国家的 16000 多位...

    AI科技大本营
  • Python | 100道测试题,带你玩转Numpy模块!

    Numpy是Python做数据分析所必须要掌握的基础库之一。以下为入门Numpy的100题小练习,原为github上的开源项目,由和鲸社区的小科翻译并整理(保留...

    咸鱼学Python
  • 【算法】Python实现机器学习算法

    小编邀请您,先思考: 1 您使用Python做过什么? 2 如何用Python实现决策树系列算法? 人生苦短,就用 Python。 在 Kaggle 最新发布的...

    陆勤_数据人网
  • 100道测试题,轻松玩转python的Numpy模块!

    Numpy是Python做数据分析所必须要掌握的基础库之一。以下为入门Numpy的100题小练习,原为github上的开源项目,由和鲸社区的小科翻译并整理(保留...

    朱小五

扫码关注云+社区

领取腾讯云代金券