Python 无法根据规则将数组数据从数据类型(';float64';)强制转换为数据类型(';int64';);安全';

Python 无法根据规则将数组数据从数据类型(';float64';)强制转换为数据类型(';int64';);安全';,python,python-3.x,data-analysis,pythonplotter,Python,Python 3.x,Data Analysis,Pythonplotter,这是我的绘图散射函数。但是当我试着去做的时候 def plot_pca_scatter3D(pca_values, x, y): for name, label in [('1', 0), ('2', 1), ('3', 2), ('4', 3)]: ax.text3D(pca_values[y == label, 0].mean(), pca_values[y == label, 1].mean() + 1.5, pca_valu

这是我的绘图散射函数。但是当我试着去做的时候

def plot_pca_scatter3D(pca_values, x, y):
for name, label in [('1', 0), ('2', 1), ('3', 2), ('4', 3)]:
    ax.text3D(pca_values[y == label, 0].mean(),
              pca_values[y == label, 1].mean() + 1.5,
              pca_values[y == label, 2].mean(), name,
              horizontalalignment='center',
              bbox=dict(alpha=.5, edgecolor='w', facecolor='w'))
# Reorder the labels to have colors matching the cluster results
y = np.choose(y, [1, 2, 0]).astype(np.float)
ax.scatter(pca_values[:, 0], pca_values[:, 1], pca_values[:, 2], c=y, cmap=plt.cm.spectral,
           edgecolor='k')

ax.w_xaxis.set_ticklabels([])
ax.w_yaxis.set_ticklabels([])
ax.w_zaxis.set_ticklabels([])

plt.show()
我收到了这个错误消息 无法根据“安全”规则将数组数据从dtype('float64')强制转换为dtype('int64')


怎么办

错误和您的
x_pca
类型说明了一切
x_pca
float64
,而不是
int64
from sklearn.decomposition import PCA
pca = PCA(n_components=300)
X_pca = pca.fit_transform(X)
plot_pca_scatter3D(X_pca, X, Y)
My datatypes:
X_pca (float 64) Size (944,300)
Y (Series object of pandas.core.series module) Size (944,)
X (dataFrame) Size (944,600)