本文目录一览:
- 1、python怎么用sklearn包进行聚类
- 2、如何统计python list中元素的个数及其位置
- 3、Python 统计列表里面有多少个元素
- 4、用Python怎么统计一个列表的元素种类和各个种类的个数?
- 5、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元素。