参考: https://blog.csdn.net/ggj0727/article/details/120605935
之前用的是loadtxt读取txt文件,后来读取数据时报错,说不能转换为float类型,查了一下,loadtxt函数只能读取数据类型,否则会报错,而数据有时候用科学计数法记录,就需要用pd.read_table函数
其中,path均指的是储存数据文件夹的路径,因为要的去此文件夹下的所有文件的数据。
// 读取csv文件的数据
def readfile_ART(path):
files = os.listdir(path)
# 将acc文件挑选出来
files = list(filter(lambda x: x[0:4]=='acc_' , files))
# 解决乱序问题,以第5位到倒数第4位之间的数字的大小排序
files.sort(key=lambda x :int(x[5:-4]))
rowdata = []
for file in files:
info = path +"/" +file #应该是读取数据之后,转换为矩阵
# 将csv文件里的数据转换成矩阵
data = np.loadtxt(open(info, "rb"), delimiter=',', skiprows=0) #delimiter分割符,skiprows为选择跳过的行数,返回的是ndarray类型
rowdata = np.hstack((rowdata, data[:, 5])) #将元组按水平方向叠加
return(rowdata)
//读取txt文件
def readfile_NI(path):
files = os.listdir(path)
rowdata = []
for file in files:
info = path +"/" +file #应该是读取数据之后,转换为矩阵
# 将csv文件里的数据转换成矩阵
print('info')
print(info)
# data = np.genfromtxt(files, dtype=[string]) # 将文件中数据加载到data数组里
# data = np.loadtxt(open(info, "rb"), delimiter='\n', skiprows=0) #delimiter分割符,skiprows为选择跳过的行数,loadtxt要求读取的数据必须是数字类型,否则报错
data = pd.read_table(info, header=None, delim_whitespace=True) #返回的是dataframe类型
print('data')
print(data)
# rowdata = np.hstack((rowdata, data[:, 1])) #将元组按水平方向叠加
return(rowdata)
有关列的拼接: https://blog.csdn.net/qq_39516859/article/details/80666070
之前用的是hstack和vstack,忘记是如何拼接的了。
hstack是将数据中的每一行进行拼接,列不变,行的长度改变
一行转换为一列: https://blog.csdn.net/w_weixiaotao/article/details/111869226
包括reshape(-1,1)是什么意思,是任意行一列,所以可用来将数据转换为一列
遍历多层文件夹
链接: https://blog.csdn.net/s740556472/article/details/80574631
用os.walk