Open gaoya-J opened 4 years ago
看上去是输入数据为空导致的呢,能在之前步骤看下是否成功读取了图像数据吗
这是写得代码: `import numpy as np import matplotlib import matplotlib.pyplot as plt
from sklearn.datasets import fetch_openml from sklearn.decomposition import PCA
mnist=fetch_openml('mnist_784') x=mnist["data"] y=mnist["target"]
pca=PCA() pca.fit(x)
'''cumsum=np.cumsum(pca.explained_varianceratio) d=np.argmax(cumsum>=0.9)+1
plt.plot(cumsum) plt.ylim(0,1.1) plt.xlabel('no.of principals',fontsize=16) plt.ylabel('explained variance ratio',fontsize=16) plt.show()'''
Xr=[] for n in [5,15,35,85]: pca=PCA(n_components=n) X_reduced=pca.fit_transform(x) X_recovered=pca.inverse_transform(X_reduced) Xr.append(X_recovered)
instances=[] for i in range(10): instances.append(x[y==i][0]) for j in range(1,5): instances.append(Xr[j-1][y==i][0])
def plot_digits(instances): images = [instance.reshape(28,28) for instance in instances] row_images=[] for row in range(5): rimages=images[row5:(row+1)5] row_images.append(np.concatenate(rimages,axis=1)) image=np.concatenate(row_images,axis=0) plt.imshow(image,cmap=matplotlib.cm.binary) plt.axis("off")
plt.figure(figsize=(7,4)) plt.subplot(121) plot_digits(instances[:25]) plt.subplot(122) plot_digits(instances[25:]) plt.show() `
使用fetch_openml读取的mnist数据集截图:
请问是要怎么改才能解决这个错误啊?
Traceback (most recent call last):
File "F:\C-Practice\test.py", line 51, in
我明天测试下回复你
我明天测试下回复你 你好,请问你那边测试有出现和我一样的问题吗?
我明天测试下回复你
作者您好,我也遇到了一样的问题,不知道有没有有没有解决了
Traceback (most recent call last): File "F:/C-Practice/PCA-MNIST.py", line 36, in
instances.append(x[y==i][0])
IndexError: index 0 is out of bounds for axis 0 with size 0