我有一个问题,即将Sklearn数字数据集位的大小从8 * 8扩展到32 * 32像素。
我的方法是采用8 * 8阵列,然后展平并展开它。也就是说,总共从64像素放大到1024像素。因此,我只想将每行的值乘以16次:
因此我使用以下代码:
#Load in the training dataset
digits=datasets.load_digits()
features=digits.data
targets=digits.target
#Plot original digit
ax[0].imshow(features[0].reshape((8,8)))
#Expand 8*8 image to a 32*32 image (64 to 1024)
newfeatures=np.ndarray((1797,16*len(features[0])))
newfeatures[:]=np.NaN
newfeatures=pd.DataFrame(newfeatures)
for row in range(1797):
for i in range(0,63):
newfeatures.iloc[row,16*i]=features[row][i]
newfeatures.fillna(method="ffill",axis=1,inplace=True)
#Plot expanded image with 32*32 pixels
ax[1].imshow(newfeatures.values[0].reshape((32,32)))
如您所见,结果不符合预期
答案 0 :(得分:1)
你可以使用skimage&#res;大小调整,如下所示
from skimage import transform
new_features = np.array(list
(map
(lambda img: transform.resize(
img.reshape(8,8),#old shape
(32, 32), #new shape
mode='constant',
#flatten the resized image
preserve_range=True).ravel(),
features)))
答案 1 :(得分:0)