博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习笔记——参数axis=0,1,2...
阅读量:4707 次
发布时间:2019-06-10

本文共 932 字,大约阅读时间需要 3 分钟。

在Python程序中,当需要对一些多维的数组或列表进行操作时,经常碰到操作函数中有axis这个参数。那么这个参数应该如何理解呢?axis=0/1/2该怎么区别?下面通过一段示例程序来学习。

(1)首先定义一个2x3x4的三维数组a:

a = [[[1,2 ,3 ,4 ],      [5,6 ,7 ,8 ],      [9,10,11,12]],     [[13,14,15,16],      [17,18,19,20],      [21,22,23,24]]]

打印a,输出如下:

[[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]], [[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]]]

(2)用numpy中的sum函数对a求和,先输入axis=0:

sum_0 = np.sum(a,axis = 0)print(sum_0)

输出结果是一个3x4的数组,如下:

[[14 16 18 20]

 [22 24 26 28]
 [30 32 34 36]] 

(3)再用sum函数对a求和,输入axis=1:

sum_1 = np.sum(a,axis = 1)print(sum_1)

输出结果是一个2x4的数组,如下:

[[15 18 21 24]

 [51 54 57 60]] 

(4)最后用sum函数对a求和,输入axis=2:

sum_2 = np.sum(a,axis = 2)print(sum_2)

输出结果是一个2x3的数组,如下:

[[10 26 42]

 [58 74 90]] 

总结一下,对于一个shape为i*j*k的三维数组a,当执行函数function(a, axis=0)时,相当于在第1个dimension上进行function运算,其他维度的形状保持不变,运算结果的shape为原数组a去掉第一个dimension的sahpe(即j*k),当axis=1或2时同理。当然,axis的取值不限于0/1/2,还可以拓展到高维数组。

转载于:https://www.cnblogs.com/yucen/p/9343566.html

你可能感兴趣的文章
C#方法重载(overload)方法重写(override)隐藏(new)
查看>>
读书笔记1-编写可维护javascript代码
查看>>
Redis系列(三)—— 订阅/发布
查看>>
TDD:什么是桩(stub)和模拟(mock)?
查看>>
mysql_ my.cnf优化,安全配置和日志
查看>>
用了锚的时候,有的层被覆盖了。
查看>>
改变navigationbar的底部线条颜色
查看>>
算法入门经典第六章 例题6-9 天平
查看>>
extern的用法
查看>>
页面制作之开发工具
查看>>
Source Code Structure - Python 源码目录结构
查看>>
Mac使用Aria2下载百度网盘,突破下载限速的方法教程
查看>>
Python字符串操作
查看>>
loadrunner获取当前日期、明日日期、昨日日期
查看>>
网络资料大汇
查看>>
源码分析之AsyncTask
查看>>
C#查询XML解决“需要命名空间管理器”问题
查看>>
C语言-一个fopen函数中未使用二进制模式(b)引发的血案
查看>>
CGI FastCGI PHP-CGI PHP-FRM
查看>>
记录一个glibc 导致的段错误以及gdb 移植
查看>>