关于Python NumPy 库中 arr.transpose 方法的心得记录
2018-08-15 11:29
239 查看
利用python进行数据分析中第二版第四章有关于 NumPy库的介绍, 有关于 arr.transpose 方法的心得记录如下:
arr = np.arange(16).reshape(2,2,4)
结果就是
array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7]], [[ 8, 9, 10, 11], [12, 13, 14, 15]]])
理解为: 可以新建一个 2个一级元素,每个一级元素中又包含2个二级元素,每个二级元素中包含4个元素的三维(理解为三层)数组..这种描述我不知道对不对..自学的..见谅
一级元素两个:
[[ 0, 1, 2, 3],[ 4, 5, 6, 7]] #对应索引 arr[0]
[[ 8, 9, 10, 11],[12, 13, 14, 15]] #对应索引 arr[1]
二级元素四个:
[ 0, 1, 2, 3] #对应索引 arr[0][0]
[ 4, 5, 6, 7] #对应索引 arr[0][1]
[ 8, 9, 10, 11] #对应索引 arr[1][0]
[12, 13, 14, 15] #对应索引 arr[1][1]
第三层元素就是
0 #对应索引 arr[0][0][0]
1 #对应索引 arr[0][0][1]
2 #对应索引 arr[0][0][2]
3 #对应索引 arr[0][0][3]
.
.
.
也就是说 每个最基层的元素都可以用 3个数字来表达..用一个元祖来表现就是 (X,Y,Z)
这时候
arr.transpose((1,0,2))
结果是
array([[[ 0, 1, 2, 3], [ 8, 9, 10, 11]], [[ 4, 5, 6, 7], [12, 13, 14, 15]]])
理解就是:
对每一个基层元素的元祖表达式,即:(X,Y,Z)进行转置.
转置方式为:(0,1,2) >>> (1,0,2)
也就是每一个元素都是 (X,Y,Z) >>> (Y,X,Z)
即:
值 | 原表达式 | 转置后表达式 0 [0,0,0] [0,0,0] 1 [0,0,1] [0,0,1] 2 [0,0,2] [0,0,2] 3 [0,0,3] [0,0,3] 4 [0,1,0] [1,0,0] 5 [0,1,1] [1,0,1] 6 [0,1,2] [1,0,2] 7 [0,1,3] [1,0,3] 8 [1,0,0] [0,1,0] 9 [1,0,1] [0,1,1] 10 [1,0,2] [0,1,2] 11 [1,0,3] [0,1,3] 12 [1,1,0] [1,1,0] 13 [1,1,1] [1,1,1] 14 [1,1,2] [1,1,2] 15 [1,1,3] [1,1,3]
所以结果是
array([[[ 0, 1, 2, 3], [ 8, 9, 10, 11]], [[ 4, 5, 6, 7], [12, 13, 14, 15]]])阅读更多
相关文章推荐
- 关于python以及numpy运行速度的一点思考和记录
- 记录一个 关于 python 普通方法,静态方法和类方法 的介绍。@classmethod @staticmethod
- 关于Java导入excel表格出现下标越界异常的解决方法(个人心得记录)
- 关于python -os.mkdir(str)方法的使用记录
- 在论坛中找到的几个关于Python的小问题的解决方法
- 关于活动目录中DNS没有SRV记录的解决方法
- 关于PHP模板Smarty的初级使用方法以及心得分享
- 关于管理培训的一点心得记录
- 关于python类的一点心得
- 关于优化删除记录和备份表的方法
- 笨方法学习Python - 学习记录
- 前段时间做文件上传控件,找到些关于ASP.NET中文件操作的方法,顺便记录下来,和大家共享。
- 6 关于数据仓库维度数据处理的方法探究系列——缓慢变化维处理——记录最新记录及上一次历史
- Python字符串的encode与decode研究心得乱码问题解决方法
- 关于模拟电路低噪声的心得与方法
- 关于python中urllib.urlencode的时候出错:UnicodeEncodeError: ‘ascii’的记录
- 关于图片压缩的一点方法和心得
- 【每日一记3.16】python学习记录2--字符串方法
- selenium+python关于操作日历控件实现向日历文本框传递值的方法
- 关于.NET中动态调用Web Service服务的方法心得。