python 对矩阵进行复制操作 np.repeat 与 np.tile区别
时间:2022-05-06
本文章向大家介绍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]]
- Angular企业级开发(3)-Angular MVC实现
- spring: 加载远程配置
- java:如何让程序按要求自行重启?
- Angular学习-指令入门
- java:如何让程序按要求自行重启?
- linux:nohup 不生成 nohup.out的方法
- 让VIM支持Python2 by update-alternatives
- Angular中ngCookies模块介绍
- 如何让jboss eap 6.2+ 的多个war应用共享 jar 包?
- scala 学习笔记(07) 一等公民的函数
- 让BASH,VIM美美的Powerline
- 极品三数666.cn易主,价格让人大惊!
- ui-router中使用ocLazyLoad和resolve
- rpc框架之 avro 学习 2 - 高效的序列化
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 突击并发编程JUC系列-原子更新字段类AtomicStampedReference
- 去除字符数组中指定的字符
- Android——Android Studio开发环境搭建及设置本地Gradle方法
- Java——类集框架:List集合接口的详解及应用举例
- Android——NORDIC nRF5x系列 DFU升级 APP实现
- Java——集合工具类(Collections工具类、Stack子类)
- Android——RecyclerView自定义OnScrollListener实现下拉刷新监听,上拉加载更多功能
- Java——类集框架:Map集合的详解及应用举例
- Java——类集框架:Set集合接口的详解及应用举例
- 如何有效地进行代码 Review?
- Java——对象序列化
- Android——MPAndroidChart折线图/柱状图/饼形图的使用
- Java——对String类型的时间进行加减操作
- Java——枚举基础应用总结(多例设计模式、Enum类、枚举的实际应用)
- Java——Annotation注解基本总结(简介、覆写、过期声明、压制警告)