[英]How to convert an array to np.array?
我想在我的 k-means 算法中使用一组中心。 这是我的数组
[[-5.158116189420494, -6.135869490272887, -7.112943870919113, -4.719408271488777, -8.652736411771516, -5.115898856180194, -9.444466710512513, -6.721183141827832, -8.187939363193856, -4.866007421496122, -4.498541424902005, -6.05955187591462], [2.4503788682948797, 4.136767712097715, 3.800113452319174, 1.7263996510061559, 6.204316437195861, 3.199580908124732, 5.4996984541468565, 3.504064521222991, 1.7285485126344595, 1.9327954130937557, 4.491668242286317, 2.4442089524354818], [8.91661735243092, 8.19164570547311, 7.28941813144091, 11.01087393409493, 9.666237508380636, 7.689372230181427, 10.796081659572991, 10.587480247869069, 12.490792204659163, 9.146059052365413, 4.077223320288767, 8.748918676524138], [-5.007715234440542, -5.201881954076602, -2.990066071487654, -6.50605352762039, -6.097032315522047, -4.81206434114537, -5.453803052692122, -5.968516137674577, -4.087403530804171, -4.9456413319696315, -3.748488710268994, -3.8879845624490703]]
这就是我定义 k-means 使用它的方式
km = KMeans(n_clusters=4, init=cluster_centers, max_iter=30)
km.fit(Xnorm)
km.predict(Xnorm)
y_kmeans = km.predict(Xnorm)
我收到这个错误
ValueError: init should be either 'k-means++', 'random', a ndarray or a callable, got '[[-5.158116189420494, -6.135869490272887, -7.112943870919113, -4.719408271488777, -8.652736411771516, -5.115898856180194, -9.444466710512513, -6.721183141827832, -8.187939363193856, -4.866007421496122, -4.498541424902005, -6.05955187591462], [2.4503788682948797, 4.136767712097715, 3.800113452319174, 1.7263996510061559, 6.204316437195861, 3.199580908124732, 5.4996984541468565, 3.504064521222991, 1.7285485126344595, 1.9327954130937557, 4.491668242286317, 2.4442089524354818], [8.91661735243092, 8.19164570547311, 7.28941813144091, 11.01087393409493, 9.666237508380636, 7.689372230181427, 10.796081659572991, 10.587480247869069, 12.490792204659163, 9.146059052365413, 4.077223320288767, 8.748918676524138], [-5.007715234440542, -5.201881954076602, -2.990066071487654, -6.50605352762039, -6.097032315522047, -4.81206434114537, -5.453803052692122, -5.968516137674577, -4.087403530804171, -4.9456413319696315, -3.748488710268994, -3.8879845624490703]]' instead.
从我正在阅读的消息中,我认为我需要为数组使用特定格式。 如何进行转换?
for i in range(0,100):
X=dataML
X = X[np.random.default_rng(seed=i).permutation(X.columns.values)]
#X = X.sample(frac=1).reset_index(drop=True)
Xnorm=mms.fit_transform(X)
km=KMeans(n_clusters=4,n_init=10,max_iter=30,random_state=42)
y_kmeans=km.fit_predict(Xnorm)
print('aqui')
print(km.cluster_centers_)
print('aqui 2')
center_cluster01.append(km.cluster_centers_[0])
center_cluster02.append(km.cluster_centers_[1])
center_cluster03.append(km.cluster_centers_[2])
center_cluster04.append(km.cluster_centers_[3])
meanC01=[]
for i in range(0,12):
sum=0
for j in range(0,100):
sum = sum + center_cluster01[j][i]
mean01 = sum/2
meanC01.append(mean01)
meanC02=[]
for i in range(0,12):
sum=0
for j in range(0,100):
sum = sum + center_cluster02[j][i]
mean02 = sum/2
meanC02.append(mean02)
meanC03=[]
for i in range(0,12):
sum=0
for j in range(0,100):
sum = sum + center_cluster03[j][i]
mean03 = sum/2
meanC03.append(mean03)
meanC04=[]
for i in range(0,12):
sum=0
for j in range(0,100):
sum = sum + center_cluster04[j][i]
mean04 = sum/2
meanC04.append(mean04)
Xnorm=mms.fit_transform(dataML)
cluster_centers = [meanC01, meanC02, meanC03, meanC04]
km = KMeans(n_clusters=4, init=cluster_centers, max_iter=30)
km.fit(Xnorm)
km.predict(Xnorm)
y_kmeans = km.predict(Xnorm)
你能检查你拥有的第一个数组的类型吗? 我看到两组开括号,这意味着它是多维的。
您可能想尝试使用 numpy.ndarray.flatten() 展平您的数组。
由于维度问题,我遇到了数据未正确传递的问题。
NumPy 方法描述在这里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.