您的位置:

python中评价簇的个数的简单介绍

本文目录一览:

python怎么用sklearn包进行聚类

# -*- coding: utf-8 -*-

from sklearn.cluster import KMeans

from sklearn.externals import joblib

import numpy

final = open('c:/test/final.dat' , 'r')

data = [line.strip().split('\t') for line in final]

feature = [[float(x) for x in row[3:]] for row in data]

#调用kmeans类

clf = KMeans(n_clusters=9)

s = clf.fit(feature)

print s

#9个中心

print clf.cluster_centers_

#每个样本所属的簇

print clf.labels_

#用来评估簇的个数是否合适,距离越小说明簇分的越好,选取临界点的簇个数

print clf.inertia_

#进行预测

print clf.predict(feature)

#保存模型

joblib.dump(clf , 'c:/km.pkl')

#载入保存的模型

clf = joblib.load('c:/km.pkl')

'''

#用来评估簇的个数是否合适,距离越小说明簇分的越好,选取临界点的簇个数

for i in range(5,30,1):

    clf = KMeans(n_clusters=i)

    s = clf.fit(feature)

    print i , clf.inertia_

'''

如何统计python list中元素的个数及其位置

代码如下:

list1=[2,3,1,9,112,23,23,6,6,1,3,0,11,2,1,1]

L1=len(list1) #列表list1的长度

list2=list(set(list1)) #可以用set,直接去掉重复的元素

list2.sort(reverse=False) #将列表由小到大排序

L2=len(list2) #列表list2的长度

print('集合:'+str(list1))

for m in range(L2):

X=set() #设定一个空的集合,用来存放这个元素的所在的位置

start=list1.index(list2[m])

for n in range(L1):

stop=L1

if list2[m] in tuple(list1)[start:stop]:

a=list1.index(list2[m],start,stop)

X.add(a)

start=start+1

print('元素:'+str(list2[m])+',一共有'+str(len(X))+'个,在列表位置集合为:'+str(X))

结果如下:

集合:[2, 3, 1, 9, 112, 23, 23, 6, 6, 1, 3, 0, 11, 2, 1, 1]

元素:0,一共有1个,在列表位置集合为:{11}

元素:1,一共有4个,在列表位置集合为:{9, 2, 14, 15}

元素:2,一共有2个,在列表位置集合为:{0, 13}

元素:3,一共有2个,在列表位置集合为:{1, 10}

元素:6,一共有2个,在列表位置集合为:{8, 7}

元素:9,一共有1个,在列表位置集合为:{3}

元素:11,一共有1个,在列表位置集合为:{12}

元素:23,一共有2个,在列表位置集合为:{5, 6}

元素:112,一共有1个,在列表位置集合为:{4}

---------------------

作者:散仙黄晓烟

来源:CSDN

原文:

版权声明:本文为博主原创文章,转载请附上博文链接!

Python 统计列表里面有多少个元素

Python 统计列表里面有多少个元素步骤如下:

1、打开python语言命令窗口,定义一个列表变量Z并打印对应的列表值。

2、调用列表中的方法max(),可以获取列表中所有元素中最大值。

3、使用第二步中对应的方法min(),可以获取列表中最小值。

4、如果想要获取列表中所有元素的个数,使用count()方法,结果出现了报错,然后使用len()方法。

5、再次调用count方法,不过这次需要传一个参数,查询列表中某个元素是否在其中。

6、最后在列表中,使用方法pop进行退出元素,然后返回这个元素。

用Python怎么统计一个列表的元素种类和各个种类的个数?

统计一个列表中每一个元素的个数在Python里有两种实现方式,

第一种是新建一个dict,键是列表中的元素,值是统计的个数,然后遍历list。

items = ["cc","cc","ct","ct","ac"]

count = {}

for item in items:

    count[item] = count.get(item, 0) + 1

print(count)

#{'ac': 1, 'ct': 2, 'cc': 2}

之中用到了一个小技巧,当dict中不还没有统计过一个元素时,直接索引count[item]会报错,而使用get方法count.get(item, 0)能够设置索引不存在的键时返回0。

第二种是使用Python内置的函数。统计元素的个数是一种非常常见的操作,Python的collection包里已经有一个Counter的类,大致实现了上面的功能。

from collections import Counter

items = ["cc","cc","ct","ct","ac"]

count = Counter(items)

print(count)

#Counter({'ct': 2, 'cc': 2, 'ac': 1})

python 判断列表中每个元素有几个

比如你可以这样(用isinstance()函数来判断类型):

123456789intCount = 0 #用来记录列表中的int元素个数listCount = 0 #记录list元素个数a = [1,'a',2,[1,2]]for i in a: #遍历a if isinstance(i,int): #判断i是不是int intCount += 1 elif isinstance(i,list): #判断i是不是list listCount += 1print(intCount,listCount)

结果是2 1,也就是有2个int元素,1个list元素。

这是一个思路,你可以根据需要添加判断的类型,比如要统计float类型,就可以再加个elif isinstance(i,list)来进行统计。至于元素种类,对应的记录是0,就说明没有这个种类的元素,比如如果intCount是0,就说明列表中没有int元素。