Python——Excel数据转化为矩阵

def excel2m(path):
    data = xlrd.open_workbook(path)
    table = data.sheets()[0]
    nrows = table.nrows  # 行数
    ncols = table.ncols  # 列数
    c1 = np.arange(0, nrows, 1)
    datamatrix = np.zeros((nrows, ncols))
    for x in range(ncols):
        cols = table.col_values(x)
        minVals = min(cols)
        maxVals = max(cols)
        cols1 = np.matrix(cols)  # 把list转换为矩阵进行矩阵操作
        ranges = maxVals - minVals
        b = cols1 - minVals
        normcols = b / ranges  # 数据进行归一化处理
        datamatrix[:, x] = normcols # 把数据进行存储
    return datamatrix

此函数可以将Excel数据转为矩阵。亲测有用,深度学习常用得到。在此保留一下。

### 将图像转换为二维矩阵并保存或导出 在 Python 中,可以通过多种方法将图像转换为二维矩阵,并将其保存到不同的文件格式中。以下是具体实现方式: #### 使用 `Pillow` 库加载图像并转换为二维矩阵 Python 的 `Pillow` 是一个强大的库,用于处理图像数据。通过该库可以轻松地将图像加载为 NumPy 数组形式的二维矩阵。 ```python from PIL import Image import numpy as np # 加载图像 image = Image.open('example.jpg').convert('L') # 转换为灰度图 matrix = np.array(image) print(matrix.shape) # 输出矩阵形状 (height, width) ``` 上述代码中的 `.convert('L')` 方法会将彩色图像转换为灰度图像,从而得到一个二维矩阵[^1]。 --- #### 导出二维矩阵为 MATLAB 文件 (.mat) 如果希望将生成的二维矩阵导出为 MATLAB 支持的 .mat 文件,则可以使用 SciPy 提供的功能。 ```python from scipy.io import savemat # 假设 matrix 已经是一个二维数组 savemat('output_matrix.mat', {'data': matrix}) ``` 此操作会创建名为 `output_matrix.mat` 的文件,在 MATLAB 中可以直接加载并访问变量 `data` 表示原始矩阵[^2]。 --- #### 导出二维矩阵Excel 文件 对于某些场景下需要将矩阵存储为 Excel 文件的情况,可借助 `pandas` 和 `openpyxl` 完成这一目标。 ```python import pandas as pd df = pd.DataFrame(matrix) # 创建 DataFrame 对象 df.to_excel('output_matrix.xlsx', index=False, header=False) ``` 这段代码能够将二维矩阵写入 Excel 文件,且不会附加额外索引列或表头信息[^5]。 --- #### 导出二维矩阵为 PNG 图片 当需要可视化矩阵并将结果另存为图片时,可以选择 Matplotlib 来完成任务。 ```python import matplotlib.pyplot as plt plt.imshow(matrix, cmap='gray') plt.colorbar() plt.savefig('output_image.png', dpi=300) plt.close() ``` 这里利用了 Matplotlib 绘制热力图功能展示数值分布情况,并最终以高质量分辨率保存为 PNG 格式的静态图形文件[^3]。 --- #### 导出二维矩阵为 TIFF 文件 针对科学计算领域常见的需求——将矩阵转储为地理信息系统兼容的 TIFF 数据集,则推荐采用 GDAL/OGR 扩展包执行相应流程。 ```python from osgeo import gdal import numpy as np driver = gdal.GetDriverByName('GTiff') dataset = driver.Create('output_matrix.tif', matrix.shape[1], matrix.shape[0], 1, gdal.GDT_Float32) dataset.GetRasterBand(1).WriteArray(matrix) # 设置投影坐标系(此处省略) dataset.FlushCache() del dataset ``` 以上脚本片段展示了如何基于输入的 Numpy Array 构建一个新的 GeoTIFF 文档实例[^4]。 ---
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值