|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2020-2-19 22:53 编辑
上一讲我们用小师妹的照片理解了数组的堆叠和拆分,本次学习转置和轴对换。
有言在先,概念多一些,比较容易不想看...
我们之前讲的维度,在 NumPy 中通过 axis(轴)来衡量。
上一讲的方式,对应图右边的操作。
而还有一种三维合并方式,就是图左。
图左和图右的转就涉及到了转置和轴转换。
关键点:
图看完,我们上代码。
导入 NumPy 库,然后新建 3 个数组:
接下来用 stack 合并 a1,a2,a3:
注意图中箭头所指,是 (()) 哦!
然后用深度堆叠合并:
看出二者有什么区别了吗?
没错就是一开始图里的区别。
我们可以通过 transpose 将 b1 转为 b2。
先看理解轴的玩法,看默认轴顺序下的值:
(a,b,c)代表三维的轴,0,1,2 的值代表 axis 轴。
如果想变成 b2 需要换轴,改为 1,2,0(想像成立方体旋转,轴方向不变):
是不是一样了呢,不懂的话对照一开始图中的轴顺序。
可以通过 == 判断旋转后的是否和 b2 相同:
全 True,意味着相同!
三维数组的转置
在11 - 合并函数的小坑须知|【常用方法】介绍了转置。
对于二维:
对于三维:
如果你没理解上面的红色字的旋转,那就硬记。
实现上面的概念就要用到 swapaxes 方法。
结合上面的例子,我们先看 b1.swapaxes(1,2):
交换 1 轴和 2 轴的位置,用 transpose 就是 0 不需要变,改动后两位:
记住一般形状的改变都是“视图”。
下一讲我们来看快速创建指定数组。
源代码:
15TransferSwapaxe.zip
(378 Bytes, 下载次数: 0, 售价: 5 鱼币)
如果有收获,别忘了评分 :
如果想看更多,请订阅 淘专辑( 传送门)( 不喜欢更要订阅 ) |
|