第一步:得到兩個作者的資料,發表的**數和**被引用的數量的和
# -*- coding: utf-8 -*-
"""created on thu sep 5 10:40:57 2019
@author: administrator
"""import json
fo=open("d:\\mag_authors_2\\mag_authors_10.txt",'r+')
fi=open('demo3.txt','a')
#print fo.readline()
for i in range(10000):
js=json.loads(fo.readline())
n_pubs=str(js['n_pubs'])
n_citation=str(js['n_citation'])
fi.write(n_pubs+' '+n_citation+'\n')
print js['n_pubs'],js['n_citation']
fo.close()
fi.close()
資料示例
第二部:進行聚類 當然是k-means 演算法啦
# -*- coding: utf-8 -*-
"""created on wed sep 4 13:06:59 2019
@author: administrator
"""import numpy as np
import numpy.matlib
import math as mt
import matplotlib.pyplot as plt
def d(a1,a2):
return np.sqrt(np.sum((np.abs(a1-a2)**2)))
def getlist():#從文字中讀取取資料
fo=open("demo3.txt",'r+')
x=for str in fo:
z=str.split(' ')
x=[float(z[0]),float(z[1])]
return x
x=getlist()
a1=x[4]
a2=x[9]
a3=x[7]
line1x=
line1y=
line2x=
line2y=
line3x=
line3y=
d1=#d 為初始化簇
d2=d3=
while 1:#迭代求質點和簇
b1=a1
b2=a2
b3=a3
plt.plot(a1[0],a1[1],'xb')
plt.plot(a2[0],a2[1],'xr')
plt.plot(a3[0],a3[1],'xg')
d1=#初始化簇
d2=d3=
for i in x:#計算歐氏距離,把最近的新增到各簇中
d1=d(a1,i)
d2=d(a2,i)
d3=d(a3,i)
if d1<=d2:
if d1<=d3:
else:
else:
if d2<=d3:
else:
if len(d1)!=0:#如果簇中沒有物件,則質點不變,若有物件則重新計算質點,為各指標的和的平均,下同
x=0y=0
for j in d1:
x+=j[0]
y+=j[1]
a1=[x/len(d1),y/len(d1)]
if len(d2)!=0:
x=0y=0
for j in d2:
x+=j[0]
y+=j[1]
a2=[x/len(d2),y/len(d2)]
if len(d3)!=0:
x=0y=0
for j in d3:
x+=j[0]
y+=j[1]
a3=[x/len(d3),y/len(d3)]
print a1,a2,a3
if np.array_equal(a1,b1)&np.array_equal(a2,b2)&np.array_equal(a3,b3):#比較質點是否發生變化(是否收斂)收斂則跳出迭代
print '收斂'
break
print d1
print d2
print d3
plt.plot(line1x,line1y)#畫出質點的變化路徑
plt.plot(line2x,line2y)
plt.plot(line3x,line3y)
x1=np.array(d1).t#畫出各簇中的物件
plt.plot(x1[0],x1[1],'^b',markersize=1)
x1=np.array(d2).t
plt.plot(x1[0],x1[1],'or',markersize=1)
x1=np.array(d3).t
plt.plot(x1[0],x1[1],'og',markersize=1)
plt.show()
最後結果:
踏出第一步
我是乙個比較內向的人,或許應該說有一點自卑的傾向。因為生活中的一些事情,總是不斷的打擊我的自信心,讓我產生一種感覺 我缺乏能力,是乙個無用的人。我想有過這種經歷的,肯定不只我乙個人。人的信心有時候是很脆弱的,兩三次的失敗就可能讓其消失殆盡,然後你就覺得,反正我也做不出什麼事情來,乾脆就這樣混著吧,於...
邁出第一步
我,乙個程式小白,不是為了熱愛而走上程式設計之路。就這樣稀里糊塗的度過了兩年,期間,自己有為找不出那乙個個errors煩躁,也有為成功編譯後而獲得正確結果的那種喜悅。如今是真的想去改變現狀,想去提公升自己,想不負剩餘的兩年時光,不負你,不負我!對於今後的學習之路的想法,首先基礎的語言學習,其次資料結...
爬蟲第一步
注意正規表示式的書寫注意正規表示式的書寫 import re import requests url headers html requests.get url,headers,timeout 10 text print html redata re.compile r for i in re.fi...