Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查相同的列表_Python_Python 2.7_Numpy_Types_Scikit Learn - Fatal编程技术网

Python 检查相同的列表

Python 检查相同的列表,python,python-2.7,numpy,types,scikit-learn,Python,Python 2.7,Numpy,Types,Scikit Learn,读完这篇文章,我有: 其中: [[-0.30485176069166947, -0.2874083792427779, 0.0677763505876472], ...,[0.09384637511656496, -0.015282322735474268, -0.05854574606104108]] here [array([-0.30485176, -0.28740838, 0.06777635]), ..., array([-0.03415291, -0.10915068, 0.07

读完这篇文章,我有:

其中:

[[-0.30485176069166947, -0.2874083792427779, 0.0677763505876472], ...,[0.09384637511656496, -0.015282322735474268, -0.05854574606104108]]
here
[array([-0.30485176, -0.28740838,  0.06777635]), ..., array([-0.03415291, -0.10915068,  0.07733185]), array([ 0.09384638, -0.01528232, -0.05854575])]
<type 'list'>
<type 'list'>
我得到这个错误:

如何解决这个问题

质心的类型为
,其计算如下:

from sklearn import decomposition
centroids = pca.transform(mean_centroids)

请注意,如果没有PCA,我只会:

return old_centroids == centroids

编辑0:

建议
set()
,因此我做了:

return set(old_centroids) == set(np.array(centroids).tolist()) # or set(centroids)
得到:

TypeError: unhashable type: 'list'

由于您比较的是浮点值,因此最好使用并保留
numpy
数组形式中的值:

return np.allclose(np.array(old_centroids), np.array(centroids))
(请注意,我将一维数组列表转换为二维数组;从技术上讲,如果愿意,可以分别为
old_质心
质心
中的每对元素应用
allclose()
。)

编辑(基于注释):如果
old_质心
质心
可能具有不同的形状,请在
allclose()之前检查:


r=all(小于等于(abs(x-y),atol+rtol*abs(y)))值错误:操作数无法与形状(25,0)(25,3)一起广播。
。这可能是因为第一次,
old_centroids
只是一个包含25个空列表的列表吗?当然,在您的问题中,打印输出中肯定没有空列表。如果有
old_centroids
内容的其他变体,请添加一个可执行示例。如果这是唯一的其他变量,只需在比较之前检查数组大小是否大于0。fjarri,它太长了,我的问题已经很大了
old_centroids
仅在第一次迭代时由25个空列表组成,然后得到我在问题中看到的列表,我们不能绕过它吗?可能在调用
allclose()
之前进行虚拟检查?
return set(old_centroids) == set(np.array(centroids).tolist()) # or set(centroids)
TypeError: unhashable type: 'list'
return np.allclose(np.array(old_centroids), np.array(centroids))
old = np.array(old_centroids)
new = np.array(centroids)
return old.shape == new.shape and np.allclose(old, new)