发布于2021-07-25 07:36 阅读(555) 评论(0) 点赞(8) 收藏(4)
df = pd.DataFrame(np.arange(12).reshape(3,4),columns=["A","B","C","D"])
df
#结果:
A B C D
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
进行单行删除操作(axis = 0) 需要指定行索引
print(df.drop(0,axis=0))
#结果:
A B C D
1 4 5 6 7
2 8 9 10 11
进行跨行求均值聚合操作(axis = 0) ,就是跨行操作,axis = 0在动,其他的axis不动,得到的实际就是每一列均值
print(df.mean(axis=0))
#结果:
A 4.0
B 5.0
C 6.0
D 7.0
dtype: float64
进行单列删除操作(axis = 1) 需要指定列名
print(df.drop(['A'],axis=1))
#结果:
B C D
0 1 2 3
1 5 6 7
2 9 10 11
进行跨列求均值聚合操作(axis = 1) ,就是跨列操作,axis = 1在动,其他的axis不动,得到的实际就是每一行均值
print(df.mean(axis=1))
#结果:
0 1.5
1 5.5
2 9.5
dtype: float64
在多维矩阵中就不能把axis=0理解成行,axis=1,理解成列了,要将axis理解成轴更合理,有个不变的规则是,axis=0,永远指的是narray最外层的括号,axis=1是第二个括号,axis=2是第三个括号,以此类推。
代码分析验证:生成数据,数据是0-23的,矩阵形状是(2,3,4)
data = np.arange(24).reshape(2, 3, 4)
data
#结果:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
其中reshape(2,3,4) ,维度2代表的是最外层括号,即axis=0 ,维度3即axis=1,维度4即axis=2
假设我们取均值 要拿掉维度2(axis=0),按照上面的理解我们拿掉的是最外层的括号,得到的维度应该是3*4
print (data.mean(axis=0))
#结果:
[[ 6. 7. 8. 9.]
[10. 11. 12. 13.]
[14. 15. 16. 17.]]
具体的计算逻辑为:我们要消灭的维度为2,所以参与计算的元素是两个,比如6这个值,是0与12求平均的结果,结果矩阵b中b[0][0]是a[0][0][0]与a[1][0][0]求平均的结果
假设要消灭的维度为3,axis=1,参与计算的元素是3个,最后的结果是2*4。
print (data.mean(axis=1))
#结果:
[[ 4. 5. 6. 7.]
[16. 17. 18. 19.]]
结果矩阵b[0][0]是a[0][0][0]+a[0][1][0]+a[0][2][0]平均的结果
作者:新宫之晨
链接:http://www.pythonpdf.com/blog/article/534/07fe7a89f47f22ebd55b/
来源:编程知识网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!