近红外光谱建模之光谱预处理python实现(一)

部署运行你感兴趣的模型镜像

目录

1 原始光谱

2 中心化处理

3 标准化处理


1 原始光谱

import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio


def PlotSpectrum(spec):
    """
    :param spec: shape (n_samples, n_features)
    :return: plt
    """

    plt.figure(figsize=(5.2, 3.1), dpi=300)
    x = np.arange(400, 400 + 2 * spec.shape[1], 2)
    for i in range(spec.shape[0]):
        plt.plot(x, spec[i, :], linewidth=0.6)

    fonts = 8
    plt.xlim(350, 2550)
    # plt.ylim(0, 1)
    plt.xlabel('Wavelength (nm)', fontsize=fonts)
    plt.ylabel('absorbance (AU)', fontsize=fonts)
    plt.yticks(fontsize=fonts)
    plt.xticks(fontsize=fonts)
    plt.tight_layout(pad=0.3)
    plt.grid(True)
    return plt


mat = sio.loadmat('ndfndf.mat')
data = mat['ndfndf']
x, y = data[:, :1050], data[:, 1050]
print(x.shape, y.shape)
pp = PlotSpectrum(x)
pp.show()

2 中心化处理

def mean_centralization(sdata):
    """
    均值中心化
    """
    temp1 = np.mean(sdata, axis=0)
    temp2 = np.tile(temp1, sdata.shape[0]).reshape((sdata.shape[0], sdata.shape[1]))
    return sdata - temp2


x = mean_centralization(x)
pp = PlotSpectrum(x)
pp.show()

3 标准化处理

def standardlize(sdata):
    """
    标准化
    """
    from sklearn import preprocessing
    return preprocessing.scale(sdata)


x = standardlize(x)
pp = PlotSpectrum(x)
pp.show()

 

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 43
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值