前缀平均值

博客内容讲述了如何计算数组的前缀平均值,即从数组的第一个数开始,逐步计算每个位置上的平均值,并将这些平均值存入新的数组。提供的Java代码示例展示了如何实现这一过程,其时间复杂度为O(n)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
定义:
计算数组X里的前缀平均值,表明从数组第一个数开始求和,前n个的和就除以n,依次计算到数组所有元素的和除以总数结束,所得的n个结果就是所有要求的平均值,然后放入一个新的数组。
我们想计算出数组A,该数组满足的条件为:当j=0,…,n-1时,A[ j ]是X[ 0 ],…,X[ j ]的平均值。

public static void main(String []args) {
		double[] arr = {4,6,10,8,2};
		double[] result = qianZhui(arr);
		for(double i : result){
			System.out.print(i+"  ");	
		}
    }
	
	public static double[] qianZhui(double[] array){
		int len = array.length;  //临时空间
		double[] arr = new double[len];
		double total = 0;
		for(int i = 0;i < array.length;i++){
			total += array[i];
			arr[i] = total/(i+1);
		}
		return arr;
	}

最后的结果也没做处理,可能小数位数会比较长
算法运行:

  1. 初始化变量n和total,用时O(1)
  2. 初始化长度为n数组arr,用时O(n)
  3. for循环用时O(n)
  4. i从0到array数组长度-1,循环体被执行n次,共用时O(n)

大O符号使得我们忽视常量因子和低阶项,转而关注函数中影响幅度较大的主要成分,所以运行时间为O(n)

### 使用 Python 和 ArcGIS 计算指定区域的栅格平均值 为了在 ArcGIS 中计算指定区域内多个栅格数据的平均值,可以采用两种主要方法:通过编写 Python 脚本以及利用 ArcGIS 的内置工具。 #### 方法一:基于 Python 编程实现 下面展示了一种使用 Python 结合 `arcpy` 库来处理这一需求的方法: ```python import arcpy from arcpy.sa import * # 启用 Spatial Analyst 扩展模块并设置覆盖选项 arcpy.CheckOutExtension("spatial") arcpy.gp.overwriteOutput = True # 设置工作空间至包含输入栅格文件夹的位置 arcpy.env.workspace = "G:\\Phenology of 30 Years\\GIMMS 3g\\15Length\\1Length\\" # 定义输出路径和文件名前缀 output_path = "G:\\Phenology of 30 Years\\GIMMS 3g\\15Length\\2mean_len\\" output_filename_prefix = "mean" # 获取当前工作区内的所有栅格文件列表 raster_files = arcpy.ListRasters() # 初始化总和变量用于累加各期影像像元值 total_sum = Raster(raster_files[0]) * 0 count = len(raster_files) for raster_file in raster_files: total_sum += Raster(raster_file) # 将累积后的结果除以总数得到均值图像,并保存到指定位置 average_raster = total_sum / count average_raster.save(output_path + output_filename_prefix + ".tif") print("Processing completed.") ``` 此脚本读取给定目录下的所有栅格文件,逐个相加以获得总的像素值之和,最后再除以参与运算的栅格数量从而得出平均值。注意这里假设所有的栅格具有相同的分辨率和地理范围[^1]。 #### 方法二:借助 ArcGIS 内置功能完成 另一种更直观的方式是在 ArcGIS Pro 中直接调用相应的工具来进行操作。具体步骤如下所示: 进入 **工具箱** -> **Spatial Analyst 工具** -> **多元分析** 下找到名为 “波段集统计”的工具。该工具允许一次性对多层栅格执行统计分析,包括但不限于求解平均数、方差等指标。运行结束后将会生成一份总结报告文档(通常是 .txt 文件),其中记录了每项统计数据的信息[^2]。 这两种方式各有优劣,前者适合熟悉编程环境的人士快速定制化开发;后者则更适合那些希望通过图形界面交互式地获取所需信息而不必深入理解底层逻辑的操作者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值