Python教程

【Python】数据降维

本文主要是介绍【Python】数据降维,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

背景

为了匹配下一个环节的输入,需要将手头已有的 n x 3 维的 txt文件转换为 1024 x 3维的数据,n可能比1024大也可能比1024小。大于1024维的数据进行随机采样,小于1024维的数据先复制内容进行扩充到大于1024,然后降维。

代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json, os, re
import random
import numpy as np

source_file = 'part0.txt'
result_file = 'part0_new.txt'

if os.path.exists(result_file):
	with open(result_file,"r+") as f:
		f.truncate()
if os.path.isfile(source_file):
	with open(source_file,'r',encoding='UTF-8') as f:
		lines = f.readlines()  # 每行读如数据
		a = []
		print(len(lines))
		for i in lines:
			i = i.replace('\n', '')
			a.append(i)  # 把每一行添加到列表中

		while len(a) < 1024:  # 对小于1024维的数据先复制原有列表进行扩充
			a.extend(a)
		samples = random.sample(a, 1024)  # 对超过1024维的数据,随机抽取行降维到1024
		print(len(samples))

	str = '\n'
	with open(result_file, 'a+', encoding='utf-8') as f1:
		f1.write(str.join(samples))  # 写入
		f1.close()

	print("change compeleted !!!")
else:
	print("文件不存在。。。。")

在这里插入图片描述

参考链接

  • python numpy : 随机抽取二维矩阵中的多行或多列
  • 在python中实现随机选择
  • python读取txt中存储为列表,并随机抽样list内容,保存至txt
  • python连接两个list
这篇关于【Python】数据降维的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!