对于numpy中array的维度的理解

理解如下

问题的提出:

之前总是搞不清楚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,因为原数组的第二维没了,新数组的元素就是一三维位置相同的元素取平均

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值