将.npy文件转.txt文件
生活随笔
收集整理的這篇文章主要介紹了
将.npy文件转.txt文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
深度圖聚類中經(jīng)常見到.npy文件,有些代碼需求.txt文件
從網(wǎng)上學習了很多代碼,整合了一份自用的代碼
該代碼將.npy轉(zhuǎn)成.txt文件,并生成相應(yīng)的圖譜graph文件
import os import numpy as np from sklearn.metrics import pairwise_distances as pair from sklearn.preprocessing import normalizetopk = 5def construct_graph(features, label, method='heat'):fname = path + "_graph.txt"num = len(label)dist = Noneif method == 'heat':dist = -0.5 * pair(features) ** 2dist = np.exp(dist)elif method == 'cos':features[features > 0] = 1dist = np.dot(features, features.T)elif method == 'ncos':features[features > 0] = 1features = normalize(features, axis=1, norm='l1')dist = np.dot(features, features.T)inds = []for i in range(dist.shape[0]):ind = np.argpartition(dist[i, :], -(topk + 1))[-(topk + 1):]inds.append(ind)f = open(fname, 'w')counter = 0for i, v in enumerate(inds):for vv in v:if vv == i:passelse:if label[vv] != label[i]:counter += 1f.write('{} {}\n'.format(i, vv))f.close()print('error rate: {}'.format(counter / (num * topk)))dataset_name = 'amap' path = 'D:/datasets/' + dataset_name # 一個文件夾下多個npy文件, txtpath = pathnamelist = [x for x in os.listdir(path)] for i in range(len(namelist)):datapath = os.path.join(path, namelist[i]) # specific addressif 'npy' not in namelist[i] or 'txt' in namelist[i]:continueinput_data = np.load(datapath, allow_pickle=True)data = input_data.reshape(input_data.shape[0], -1)data.tolist()if 'feat' in namelist[i]:data_fmt = '%.6f'else:data_fmt = '%d'np.savetxt('%s/%s.txt' % (txtpath, namelist[i].replace('.npy', '')), data, fmt=data_fmt)path = "D:/datasets/" + dataset_name + "/" + dataset_namefeat = np.loadtxt(path + "_feat.txt", dtype=float) # 特征 label = np.loadtxt(path + "_label.txt", dtype=int) # 標簽construct_graph(feat, label, 'ncos') # 構(gòu)建圖文件print('over')總結(jié)
以上是生活随笔為你收集整理的将.npy文件转.txt文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Navicat Error 2003 -
- 下一篇: spring-boot注解详解(六)