一、读取excel、csv、txt、mat并储存
pandas
import pandas as pd
# 读取Excel文件
excel_file = pd.read_excel('input.xlsx')
# 读取CSV文件
csv_file = pd.read_csv('input.csv')
# 保存为Excel文件
csv_file.to_excel('output.xlsx', index=False)
# 保存为CSV文件
excel_file.to_csv('output.csv', index=False)
----------------------TXT-------------------
# 读取文本文件
with open('input.txt', 'r') as file:
lines = file.readlines()
# 使用with语句打开文件,这样不需要手动关闭文件
with open(filename, 'r') as file:
# 逐行读取文件
for line in file:
# 使用strip()去除每行的首尾空白字符(包括换行符)
# 使用split(',')将行分割成列表
parts = line.strip().split(',')
# 假设第一列是R,第二列是overlap,并将它们转换为适当的类型
# 这里都将它们转换为浮点数
R = float(parts[0])
overlap = float(parts[1])
# 将数据添加到列表中
R_values.append(R)
overlap_values.append(overlap)
# 转换为Pandas DataFrame
data = [line.strip().split() for line in lines]
df = pd.DataFrame(data)
# 保存为Excel文件
df.to_excel('output.xlsx', index=False)
----------------------mat--------------------
from scipy.io import loadmat
import pandas as pd
# 读取MAT文件
mat_data = loadmat('input.mat')
# 转换为Pandas DataFrame
df = pd.DataFrame(mat_data['data'])
# 保存为CSV文件
df.to_csv('output.csv', index=False)
import scipy.io as si
#读取mat文件mat和h5类似都是字典格式
data=si.loadmat('test.mat')
im=data['x']
label=data['y']
#保存mat文件
si.savemat('test.mat',{'x':im,'y':label})
numpy
#############读取CSV文件并保存为MAT文件
import numpy as np
from scipy.io import savemat
# 读取CSV文件
data = np.genfromtxt('input.csv', delimiter=',')
# 请根据CSV文件的分隔符进行适当调整
# 保存为MAT文件
savemat('output.mat', {'data': data})
#############读取MAT文件并保存为CSV文件
import numpy as np
from scipy.io import loadmat
# 读取MAT文件
mat_data = loadmat('input.mat')
# 提取数据
data = mat_data['data']
# 保存为CSV文件
np.savetxt('output.csv', data, delimiter=',', fmt='%f')
# 请根据需要调整数据格式(fmt参数)
#############读取TXT文件并保存为MAT文件
import numpy as np
from scipy.io import savemat
# 读取TXT文件
data = np.loadtxt('input.txt')
# 保存为MAT文件
savemat('output.mat', {'data': data})
numpy\pandas索引
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
arr[0]
matrix[0, 1]
-------------------------------------------
import pandas as pd
# 创建一个Pandas Series
data = pd.Series([1, 2, 3, 4, 5], index=['A', 'B', 'C', 'D', 'E'])
# 通过标签索引访问Series元素
data['A'] # 通过标签 'A' 访问元素
df['A'][0]) # 访问第一行的 'A' 列元素
data.iloc[0, 1] # 访问第一行、第二列的元素
pandas\numpy互相转化
import pandas as pd
---------float转化-----------
df = df.astype('float32')
---------------pandas2numpy----------
# 创建一个示例的pandas DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 将DataFrame转换为numpy数组
numpy_array = df.to_numpy()
# 或者可以使用values属性
numpy_array = df.values
----------------numpy2pandas---------
import pandas as pd
import numpy as np
# 创建一个示例的numpy数组
numpy_array = np.array([[1, 4], [2, 5], [3, 6]])
# 将numpy数组转换为pandas DataFrame
df = pd.DataFrame(data=numpy_array, columns=['A', 'B'])