背景
为了匹配下一个环节的输入,需要将手头已有的 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("文件不存在。。。。")