归一化小程序

一、---功能---

将一列数据按照归一化公式来进行归一化,什么是归一化,这是数据处理中的一种数据的预处理手段,比如最大值是1000、最小值是0,将300进行归一化之后的结果就是0.3,就是将数据限制在0--1之内。

二、---过程---

(1)将表格中的数据复制到txt文件中(因为java中表格的jar包不是很好用,这里暂时用的txt文件)

(2)通过遍历每一行数据得到最大和最小值

(3)通过最大最小值对数据进行归一化

(4)将归一化后的数据写入另一个文档中

三、---程序---

package Question;
import java.io.*;
import java.text.DecimalFormat;

public class Normalization {

	public static void main(String args[]) throws Exception{
		// 定义一个输入流用来获取最大和最小值
		FileReader file = null;
		BufferedReader buffer = null;
		file = new FileReader("D:\\num.txt");
		buffer = new BufferedReader(file);

		// 定义文件的输入流
		String str = null;

		FileReader fr = null;
		BufferedReader br = null;
		fr = new FileReader("D:\\from.txt");  

		// 定义文件的输出流
		FileWriter fw = null;
		BufferedWriter bw = null;
		fw = new FileWriter("D:\\to.txt");  

		br = new BufferedReader(fr);
		bw = new BufferedWriter(fw);

		// 获得最大值和最小值
		// 注意这里的值一定要和数据的数量相对应
		double data[] = new double[8760];
		int flag = 0;

		//br.mark((int)file.length() + 1);

		while((str = buffer.readLine()) != null){
			double strNum = Double.parseDouble(str);
			data[flag] = strNum;
			flag++;
		}

		//br.reset(); 

		buffer.close();

		double maxNum = findMaxNum(data);
		double minNum = findMinNum(data);

		System.out.println("min = "+minNum);
		System.out.println("max = "+maxNum);

		int temp = 0;

		while((str = br.readLine()) != null){

			// 将字符串转换成数值
			double strNum = Double.parseDouble(str);

			// 将数组进行归一化操作,返回的就是字符串类型了
			String afterNormal = NumToOne(strNum, maxNum, minNum);

			//System.out.println(afterNormal);
			temp++;

			// 将字符串写入另一个文件
            bw.write(afterNormal);
            bw.newLine();
            bw.flush();  

		}
		br.close();
		System.out.println("共处理数据  "+temp+" 行");
	}

	// 遍历数组找到最大值
	public static double findMaxNum(double data[]){
		double max = 0;
		for(int i = 0; i < data.length; i++){
			if(data[i] > max){
				max = data[i];
			}
		}
		return max;
	}

	// 遍历数组找到最小值
	public static double findMinNum(double data[]){
		double min = data[0];
		for(int i = 1; i < data.length; i++){
			if(data[i] == 0){
				System.out.println("为0的元素是:"+(i + 1));
			}
			if(data[i] <= min){
				min = data[i];
			}
		}
		return min;
	}

	// 对某个数进行归一化处理
	public static String NumToOne(double num, double max, double min){
		double numChange = (num - min)/(max - min);

		DecimalFormat d  = new DecimalFormat("0.00000");
		return d.format(numChange);
	}
}

四、---缺陷---

(1)没有将文件的指针复位

(2)只能处理一列数据,并且是在txt文档中

时间: 2024-10-07 21:37:48

归一化小程序的相关文章

微信小程序--图片相关问题合辑

图片上传相关文章 微信小程序多张图片上传功能 微信小程序开发(二)图片上传 微信小程序上传一或多张图片 微信小程序实现选择图片九宫格带预览 ETL:微信小程序之图片上传 微信小程序wx.previewImage预览图片 微信小程序之预览图片 小程序开发:上传图片到腾讯云 .NET开发微信小程序-上传图片到服务器 微信小程序本地图片处理--按屏幕尺寸插入图片 [微信小程序]上传图片到阿里云OSS Python Flask小程序文件(图片)上传技巧 小程序图片上传阿里OSS使用方法 微信小程序问题汇

微信小程序——豆瓣电影——(2):小程序运行部署

Demo 预览 演示视频(流量预警 2.64MB) GitHub Repo 地址 仓库地址:https://github.com/zce/weapp-demo 使用步骤 将仓库克隆到本地: bash $ git clone https://github.com/zce/weapp-demo.git weapp-douban --depth 1 $ cd weapp-douban 打开微信Web开放者工具(注意:必须是0.9.092300版本) 必须是0.9.092300版本,之前的版本不能保证正

微信小程序开发初探

一.关于微信小程序 1.1 小程序诞生的背景 张小龙说道: (1)一切以用户价值为依归→用户是微信的核心,所以微信中没有很多与客户无关的功能,比如QQ中的乱七八糟一系列东西. (2)让创造发挥价值→所有围绕微信的创造比如公众号都应该发挥其应有的价值. (3)用完即走的高效服务→这一点就厉害了word天,微信要打造一个以微信为中心的生态链,不以绑定用户为目标.比如生活中有一些不太常用的app,我们可能一年也使用不了几次,但是有时候就需要用到,微信就想要提供这样一个平台,让你可以在微信中使用这中所谓

【小程序】获取微信 自带的 收货地址获取和整理

1.wx.chooseAddress(OBJECT) if(wx.chooseAddress){ wx.chooseAddress({ success: function (res) { console.log(JSON.stringify(res)) }, fail: function(err){ console.log(JSON.stringify(err)) } }) }else{ console.log('当前微信版本不支持chooseAddress'); } 2.数据处理,仅供参考 /

微信小程序学习总结(2)------- 之for循环,绑定点击事件

最近公司有小程序的项目,本人有幸参与其中,一个项目做下来感觉受益匪浅,与大家做下分享,欢迎沟通交流互相学习. 先说一下此次项目本人体会较深的几个关键点:微信地图.用户静默授权.用户弹窗授权.微信充值等等. 言归正传,今天分享我遇到的关于wx:for循环绑定数据的一个tips:  1. 想必大家的都知道wx:for,如下就不用我啰嗦了: <view class="myNew" wx:for="{{list}}">{{item.title}}<view

微信小程序之使用本地接口开发

本文主要讲解如何使用本地接口进行开发,很多人都会遇到这个问题,特别是小程序上线后. 一.解决思路 在小程序开发工具设置网络代理,然后再通过Charles设置代理,将https域名转为本地接口进行访问. 以下示例的环境为win7 + 老版本的微信开发工具 二.准备工作 1.配置https域名 为小程序配置request合法域名,在登录公众号平台去设置. 2.安装Charles 下载地址:https://www.charlesproxy.com/download/ 三.配置Charles 1.安装根

微信小程序------媒体组件(视频,音乐,图片)

今天主要是简单的讲一下小程序当中的媒体组件,媒体组件包括:视频,音乐,图片等. 先来看看效果图: 1:图片Image <!-- scaleToFill:不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素 widthFix:宽度不变,高度自动变化,保持原图宽高比不变 aspectFill:保持纵横比缩放图片,只保证图片的短边能完全显示出来. 也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取. aspectFit: 保持纵横比缩放图片,使图片的长边能完全显示出来.

带你入门微信小程序

认识微信小程序 2016年1月9日,TX启动小程序研发,于2017年1月9日正式发布.不同于微信订阅号或公众号,微信小程序被赋予了应用程序的能力,他是一种无需安装即可使用的应用,它实现了应用“触手可及”的梦想,用户“扫一扫”或者“搜一搜”即可打开应用:体现了“用完就走”的理念,用户不再需要关心是否安装太多应用问题.应用将无处不在,随时随地可用,无需卸载. 微信小程序相关技术 微信小程序自定义了一套语言,称为WXML微信标记语言,它的使用方法类似于HTML语言.另外,微信小程序还定义了自己的样式语

WordPress版微信小程序2.2.0版发布

2017年8月12日WordPress版微信小程序2.2.0版通过了微信的审核正式发布,此版本的更新以完善功能为主.主要更新的功能是:站内链接,猜你喜欢,热点文章. WordPress版微信小程序开放源码地址:https://github.com/iamxjb/winxin-app-watch-life.net 了解程序的开发历程及开发技术,建议看看相关版本的更新文章: 1.用微信小程序连接WordPress网站 2.WordPress版微信小程序1.5版本发布 3.WordPress版微信小程