英文:
array.array() takes no keyword arguments
问题
在FARS数据集上尝试进行k均值聚类时,出现了array.array()不接受关键字参数的错误,不理解为什么或如何更正它。
最初出现int32错误,我将其更改为np.int32,问题得到解决,但现在出现了array错误,无法弄清楚如何修复。
完整错误信息:
TypeError: array.array()不接受关键字参数
代码:
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.]])
希望这能帮助您解决问题。
英文:
Trying to do a k means clustering on FARS dataset, getting the array.array() takes no keyword arguments error and don't understand why or how to correct it.
Initially was getting errors for int32 which I changed to np.int32 and that corrected but now I am getting the array error and can't figure out how to fix it.
Full error:
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
Code:
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.]])
答案1
得分: 0
不要将您的代码直接复制/粘贴,因为某些行是前一行的输出。这些行不应用作语句:
>>> kmeans.labels_
array([1, 1, 1, 0, 0, 0], dtype=np.int32) # 这是 kmeans.labels_ 的输出
>>> kmeans.predict([[0, 0], [12, 3]])
array([1, 0], dtype=np.int32) # 这是 kmeans.predict(...) 的输出
>>> kmeans.cluster_centers_
array([[10., 2.], # 这是 kmean.cluster_centers_ 的输出
[ 1., 2.]])
代码应为:
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)
labels = kmeans.labels_
preds = kmeans.predict([[0, 0], [12, 3]])
centroids = kmeans.cluster_centers_
用法:
>>> labels
array([1, 1, 1, 0, 0, 0], dtype=int32)
>>> preds
array([1, 0], dtype=int32)
>>> centroids
array([[10., 2.],
[ 1., 2.]])
[文档][1]中提到:
> 我们的符号约定是 `$` 表示 shell 提示,而 `>>>` 表示 Python 解释器提示:
[1]: https://scikit-learn.org/stable/tutorial/basic/tutorial.html#loading-an-example-dataset
英文:
Don't copy/paste your code as it, some lines are the output of the previous line. This lines are not intended to be used as statements:
>>> kmeans.labels_
array([1, 1, 1, 0, 0, 0], dtype=np.int32) # this is the output of kmeans.labels_
>>> kmeans.predict([[0, 0], [12, 3]])
array([1, 0], dtype=np.int32) # this is the output of kmeans.predict(...)
>>> kmeans.cluster_centers_
array([[10., 2.], # this is the output of kmean.cluster_centers_
[ 1., 2.]])
The code should be:
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)
labels = kmeans.labels_
preds = kmeans.predict([[0, 0], [12, 3]])
centroids = kmeans.cluster_centers_
Usage:
>>> labels
array([1, 1, 1, 0, 0, 0], dtype=int32)
>>> preds
array([1, 0], dtype=int32)
>>> centroids
array([[10., 2.],
[ 1., 2.]])
The documentation said:
> Our notational convention is that $
denotes the shell prompt while >>>
denotes the Python interpreter prompt:
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论