numpy mean()的返回值是多少?

2024-09-22 16:24:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我从光栅计算数组时发现了这个问题:

with rasterio.open(file) as ds:   
    arr3d=ds.read()
    arr3d=np.ma.masked_where(arr3d==-32768,arr3d,False)
    list=[]
    for i in range(0,24):
        tmean=arr3d[i,:,:].mean()  
        list.append(tmean)

我只想得到包含24个平均值的列表,但是这段代码返回了包含arr3d的每一层、其掩码层和平均值的列表。在

^{pr2}$

但是当我尝试arr3d[i,:,:].mean()时,只返回了一个没有任何数组的平均值。 arr.mean()和{}之间有什么区别?在


Tags: 列表readas光栅withds数组open
1条回答
网友
1楼 · 发布于 2024-09-22 16:24:17

np.mean()返回一个值:(1)如果平均值是沿展平数组计算的,或者数组是一维的,或者(2)一个值数组,其中每个轴的平均值都是。因为这很容易混淆,我建议始终显式地将axis参数传递给np.mean()函数。如果你不通过一个轴,它取扁平数组的平均值。对于.mean()函数也是如此,它们实际上是相同的函数。在

我建议明确传递要计算平均值的轴:

with rio.open(file) as ds:   
    arr3d=ds.read()
    arr3d=np.ma.masked_where(arr3d==-32768,arr3d,False)
    means = np.mean(arr3d, axis=0)

那么means将始终具有与{}的第一个轴中相同数量的元素。您目前正在通过手动迭代24个元素来实现这一点,但您可以删除此步骤。在

相关问题 更多 >