理解如下
问题的提出:
之前总是搞不清楚numpy中的统计函数作用于哪个对象,尤其是高维的时候。
静心想了一下后,总结出了一个简便的方法
一个例子:
先开了一个三维的数组,打出来看看长啥样,还有其shape
arr=np.arange(24,dtype=np.float32).reshape((2,3,4))
print(arr)
print(arr.shape)
print(arr.shape[0])
print(arr.shape[1])
print(arr.shape[2])
[[[ 0. 1. 2. 3.]
[ 4. 5. 6. 7.]
[ 8. 9. 10. 11.]][[12. 13. 14. 15.]
[16. 17. 18. 19.]
[20. 21. 22. 23.]]]
(2, 3, 4)
2
3
4
好,第0维2,第一维3,第二维4,没问题
那我再套一个mean的统计函数,轴分别设为0,1,2,看看结果是?
print(arr.shape[0])
print(arr.shape[1])
print(arr.shape[2])
结果如下:
[[ 6. 7. 8. 9.]
[10. 11. 12. 13.]
[14. 15. 16. 17.]]
[[ 4. 5. 6. 7.]
[16. 17. 18. 19.]]
[[ 1.5 5.5 9.5][13.5 17.5 21.5]]
那么经过观察,就可以得出后面的结论了
结论
统计函数的结果?
numpy的统计函数的返回值就是一个降1维的列表。新的列表的shape等于原列表的shape/这个轴上的元素的数目
比如说:
axis=0 得到的是2*3*4/2=3*4的二维数组
其他同理
数组中每个元素的计算?
就是在这一维上位置相同的值套上对应的统计函数
比如说:
axis=1时,结果列表的(0,0)号元素就是(0+4+8)/3=4,因为原数组的第二维没了,新数组的元素就是一三维位置相同的元素取平均