最近入了数据科学的坑,首先遇到的就是numpy,但是numpy中有一个小白非常容易晕的问题,axis= 0 到底是对列索引还是行索引?axis = 1呢?
这个问题也困扰我许久,不过生活在互联网时代不会冲浪怎么行,于是找到了几篇讲的不错的答案。
知乎上关于此问题的回答:https://www.zhihu.com/question/58993137
一个大佬的解释:https://blog.csdn.net/fangjian1204/article/details/53055219
其实,对于一般的数学建模来说,二维数组够用,不需要多维,就把二维作为一个简单的例子讲解一下:
首先,需要仔细研读官方文档的说明:
轴用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。
看,官方定义的数组的索引是轴,并不是行和列。
axis = 0时索引的是列;
axis = 1时索引的是行;
举个栗子:
>>> import numpy as np
>>> a = np.arange(12).reshape((3,4))
>>> print(a)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
>>> np.sum(a , axis = 1) #索引的是行
array([ 6, 22, 38])
# 数组a一共三行,所以结果只有三个
继续:
>>> np.sum(a,axis = 0)
array([12, 15, 18, 21])
结果是每一列的和。
对于多维数组,这里就不详细说了,参考上面的博客,讲的很详细,很容易理解。