You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

对FARS数据集做K-Means聚类时遇array.array()无关键字参数错误求助

解决K-Means聚类中的TypeError: array.array() takes no keyword arguments错误

问题场景

在对FARS数据集执行K-Means聚类时触发如下错误,此前将int32替换为np.int32解决过类型报错,但本次错误无法排查:

错误回溯

TypeError                                 Traceback (most recent call last)
<ipython-input-11-29801179ab6c> in <cell line: 5>()
      3 kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(X)
      4 kmeans.labels_
----> 5 array([1, 1, 1, 0, 0, 0], dtype=np.int32)
      6 kmeans.predict([[0, 0], [12, 3]])
      7 array([1, 0], dtype=np.int32)

TypeError: array.array() takes no keyword arguments

原代码示例

X = np.array([[1, 2], [1, 4], [1, 0],
...               [10, 2], [10, 4], [10, 0]])
kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(X)
kmeans.labels_
array([1, 1, 1, 0, 0, 0], dtype=np.int32)
kmeans.predict([[0, 0], [12, 3]])
array([1, 0], dtype=np.int32)
kmeans.cluster_centers_
array([[10.,  2.],
       [ 1.,  2.]])

错误原因

核心问题是把示例输出当成可执行代码运行:

  • 代码第5、7行的array([...], dtype=np.int32)是kmeans.labels_和kmeans.predict()的返回结果展示,并非需要执行的语句
  • 即便要手动创建数组,当前环境中array指向Python内置的array.array类,而非numpy的np.array函数,内置array.array不支持dtype关键字参数,因此触发报错

修正方法

直接移除那些手动编写的array(...)行;若确实需要手动创建numpy数组,需明确使用np.array:

修正后的可执行代码

import numpy as np
from sklearn.cluster import KMeans

X = np.array([[1, 2], [1, 4], [1, 0],
               [10, 2], [10, 4], [10, 0]])
kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(X)
# 直接获取聚类标签结果
print(kmeans.labels_)
# 执行预测并获取结果
pred_result = kmeans.predict([[0, 0], [12, 3]])
print(pred_result)
# 获取聚类中心
print(kmeans.cluster_centers_)

手动创建numpy数组的正确写法

# 明确调用numpy的array函数
np.array([1, 1, 1, 0, 0, 0], dtype=np.int32)

内容的提问来源于stack exchange,提问作者Louisa Wareing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:43:08