1.读取.mat文件
读取的CWRU数据集为例
def capture():
files = {}
for i in filenames:
file_path = os.path.join(d_path, i)
file = loadmat(file_path)
file_keys = file.keys()
for key in file_keys:
if 'DE' in key:
files[i] = file[key].ravel()
print(files[i][-10:]) # 打印最后10个数据点作为检查
return files
2.读取.xlsx文件
def capture():
files = {}
filenames = [f for f in os.listdir(d_path) if f.endswith('.xlsx')]
for filename in filenames:
file_path = os.path.join(d_path, filename)
data = pd.read_excel(file_path)
column_data = data.iloc[:2457600, 0].values.ravel() # 只读取第一列的数据
files[filename] = np.array(column_data) # 将第一列数据存储到字典中
print(files[filename][-10:]) # 打印最后10个数据点作为检查
print(f"处理文件: {filename}, 已添加到files字典中")
return files # 返回包含所有文件第一列数据的字典
3.读取.txt 文件
def capture():
files = {}
if d_path == "../data_txt/0HP":
print(d_path)
for i in filenames:
file_path = os.path.join(d_path, i)
# 检查文件是否为txt文件,确保我们只处理txt文件
if file_path.endswith('.TXT'):
# 使用pandas读取txt文件,假设第一列没有标题,否则使用header=0
data = pd.read_csv(file_path, sep='\t' or ', ', header=None) # 根据txt文件的实际分隔符选择'sep'
# 提取第2列并展平为一维数组
first_column_data = data.iloc[:, 1].values.ravel()
files[i] = first_column_data
else:
print(f"跳过非txt文件: {i}")
return files
4.读取.csv文件
def capture():
files = {}
if d_path == "../data_me/0HP":
print(d_path)
filenames = [f for f in os.listdir(d_path) if f.endswith('.csv')]
for filename in filenames:
file_path = os.path.join(d_path, filename)
data = pd.read_csv(file_path)
data = data.iloc[1:, 1]
data = np.array(data)
# 使用文件名作为字典的键
files[filename] = data
print(files[filename][-10:])
print(f"处理文件: {filename}, 已添加到files字典中")
return files
5.读取.xls文件(将多个文件合并为一个工况)
#根据文件名的第一个数字对文件进行分类,并将属于同一类的文件数据合并在一起,最终以文件名的第一个数字为键保存到字典中。
def capture():
files = {}
if d_path == "../data_xls/0HP":
print(d_path)
filenames = [f for f in os.listdir(d_path) if f.endswith('.xls')]
for filename in filenames:
# 提取文件名的第一个数字作为分类依据
first_digit = filename[0]
file_path = os.path.join(d_path, filename)
data = pd.read_csv(file_path, encoding='gbk', sep='\t')
data = data.iloc[:, 0] # 假设你只需要第一列数据
data = np.array(data)
# 将第一个数字作为键,并添加 .xls 后缀
key = f"{first_digit}.xls"
if key not in files:
files[key] = []
# 将当前文件的数据追加到对应分类的列表中
files[key].append(data)
print(f"处理文件: {filename}, 已添加到 {key} 类中")
# 将每个类别的数据合并成一个 NumPy 数组
for key in files:
files[key] = np.concatenate(files[key], axis=0)
# 打印每个类别的最后10个数据
for key in files:
print(f"类别 {key} 的最后10个数据: {files[key][-10:]}")
return files
完整代码程序可在 完整读取程序下载,将 def capture():中的内容替换为以上的内容,就可读取不同格式的数据集。
6820

被折叠的 条评论
为什么被折叠?



