我事先审查了以下帖子.有没有办法使用具有近似因子或容差值的DataFrame.isin()?还是有其他方法可以吗?
EX)
df = DataFrame({'A' : [5,6,3.3,4], 'B' : [1,2,3.2, 5]})
In : df
Out:
A B
0 5 1
1 6 2
2 3.3 3.2
3 4 5
df[df['A'].isin([3, 6], tol=.5)]
In : df
Out:
A B
1 6 2
2 3.3 3.2
Run Code Online (Sandbox Code Playgroud) python comparison floating-accuracy comparison-operators pandas
如果我已经有一个可以作为初始质心的numpy数组,我该如何正确初始化kmeans算法?我正在使用scikit-learn Kmeans课程
这篇文章(k-means with selected initial centers)表示如果我使用numpy数组作为初始质心,我只需要设置n_init = 1,但我不确定我的初始化是否正常工作
Naftali Harris的优秀可视化页面显示了我想要做的事情 http://www.naftaliharris.com/blog/visualizing-k-means-clustering/
"我会选择" - >"Packed Circles" - >运行kmeans
#numpy array of initial centroids
startpts=np.array([[-0.12, 0.939, 0.321, 0.011], [0.0, 0.874, -0.486, 0.862], [0.0, 1.0, 0.0, 0.033], [0.12, 0.939, 0.321, -0.7], [0.0, 1.0, 0.0, -0.203], [0.12, 0.939, -0.321, 0.25], [0.0, 0.874, 0.486, -0.575], [-0.12, 0.939, -0.321, 0.961]], np.float64)
centroids= sk.KMeans(n_clusters=8, init=startpts, n_init=1)
centroids.fit(actual_data_points)
#get the array
centroids_array=centroids.cluster_centers_
Run Code Online (Sandbox Code Playgroud) 我已经解决了这个问题,我只想找到一种更有效的方法.我有一个很大的列表列表,我试图将大列表中的每个列表相互比较.
如何避免重复比较,比较已经比较过的列表?
例如:big_list [0]已经与big_list [20]进行了比较,因此没有理由在循环中将big_list [20]与big_list [0]进行比较.
big_list= [[0.12, 0.939, -0.321, 6.342], [0.12, 0.939, -0.321,6.342], [0.0, 1.0, -0.0, -5.166], [0.0, 1.0, 0.0, -5.166], [0.0, 1.0, -0.0, -5.166], [-0.0, 1.0, 0.0, -5.166], [0.0, 1.0, 0.0, -5.166], [0.0, 1.0, 0.0, -5.166], [0.0,1.0, -0.0, -5.166], [0.0, 1.0, 0.0, -5.166], [-0.0, 1.0, -0.0, -5.166], [-0.0, 1.0, 0.0, -5.166], [-0.12, 0.939, 0.321, 0.282], [-0.12, 0.939, 0.321, 0.282], [0.12, 0.939, 0.321, -17.782], [0.12, 0.939, 0.321, -17.782], [-0.0, 1.0, 0.0, 0.834], [0.0, 1.0, 0.0, 0.834], [0.0, 1.0, …Run Code Online (Sandbox Code Playgroud)