簡體   English   中英

Python Pandas Pivot圖像數據表

[英]Python Pandas Pivot image data table

我有一個正在使用的Pandas數據框,我創建了一個3000000x3(像素x搶帶)的表,現在正嘗試對其進行透視,所以我有了一個3x3000000的表,然后對新數據運行PCA。

我正在使用該Pandas Pivot函數,但無法弄清楚我在做什么錯。

import pandas as pd 
import numpy as np 
import random as rd
from sklearn.decomposition import PCA
from sklearn import preprocessing
import matplotlib.pyplot as plt
import cv2 

#read in image
img = cv2.imread('/Volumes/EXTERNAL/Stitched-Photos-for-Chris/p7_0015_20161005-949am-75m-pass-1.jpg.png',1)
row,col = img.shape[:2]
#print(row , col)

#get a unique pixel ID for each pixel
pixel = [i for i in range(0,row*col)]
data = pd.DataFrame(columns=['bBand','gBand','rBand'],index = pixel)

#populate data for each band
b,g,r = cv2.split(img)
data.loc[pixel,'bBand'] = b.flat[:]
data.loc[pixel,'gBand'] = g.flat[:]
data.loc[pixel,'rBand'] = r.flat[:]

datapivoted = data.pivot(index=['bBand','gBand','rBand'], columns=pixel, values=[data.loc[pixel,'bBand'],data.loc[pixel,'bBand'],data.loc[pixel,'bBand']])

print(data.head())
print(data.shape)

更新

使用以下代碼重新創建數據框,我認為這是正確的並且更有效,但仍然無法解決

img = cv2.imread('/Volumes/EXTERNAL/Stitched-Photos-for-Chris/p7_0015_20161005-949am-75m-pass-1.jpg.png',1)
row,col = img.shape[:2]
#print(row , col)
b,g,r = cv2.split(img)

data = pd.DataFrame({'bBnad':b.flat[:],'gBnad':g.flat[:],'rBnad':r.flat[:]})

認真考慮了這個問題。 當我需要完全交換軸時,就像使用.T轉置一樣簡單

data = pd.DataFrame({'bBnad':b.flat[:],'gBnad':g.flat[:],'rBnad':r.flat[:]})
datapivoted = data.T
print(datapivoted.head())
print(datapivoted.shape)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM