Python 将依次读入的数据合为一个数据

该文讲述了两种处理图像数据的方法,一是直接通过循环读取并resize数据,二是写入和读取txt文件。在PCA应用中,先对数据采样,然后进行标准化处理,接着计算PCA,最后使用PCA投影数据。featureNormalize函数用于数据归一化,projectData函数执行数据投影,而pca函数计算主成分。
摘要由CSDN通过智能技术生成
方案1:
data_path = ['1.jpeg', '2.jpg', '3.jpg', '4.jpg', '5.jpg']
data_all = []
data_all = list(data_all)
for i in range(len(data_path)):
    data = read_image(data_path[i])
    H, W, C = np.shape(data)
    data_all.extend(list(np.resize(data, (H*W, C))))

方案2:

从结尾写入txt,之后再读入txt

with open('data.txt','ab') as f:
    np.savetxt(f, data, delimiter=" ")  # 注意这里的f如果误打成data.txt,则只保留最后保留的,前面保留的都被删除了

读取的时候:
with open('data.txt','r') as f:
    data = np.loadtxt(f)

应用:

将数据集做PCA:

for...

        # 数据读入

        data = np.resize(data_for_pca, (H*W), C)

        data = data[::10, :] # 采样,防止数据规模太大

        with open('data.txt','ab') as f:
             np.savetxt(f, data)  

# 数据集pca计算

with open('data.txt','r') as f:
    data = np.loadtxt(f)

X_norm, means, stds = featureNormalize(pca_data)

U,S,V=pca(X_norm)

Z=self.projectData(pca_data, U, 4)

def featureNormalize(X):

        means = X.means(axis=0)

        stds = X.std(axis=0, ddof=1)

        X_norm=(X-means)/stds

        return X_norm, means, stds

def projectData(X,U,K):

        Z = X@U[:, :K]

        return Z

def pca(X):

        sigma = (X.T@X)/len(X)

        U,S,V = np.linalg.svd(sigma)

        return U, S, V

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值