split()函数的用法
在机器学习实战中遇到的问题
for line in array0Lines:
#去掉字符串头尾的空格,类似于Java的trim()
print (line)
line=line.strip()
#将整行元素按照tab分割成一个元素列表
listFromLine=line.split('\t')
分割前
40920 8.326976 0.953952 largeDoses
分割后
['40920', '8.326976', '0.953952', 'largeDoses']
实际上,txt文本中存储的都是str格式的数字和字符,需要通过字符操作,将str分开成程序可识别的英文和数字
np.where和matlab 中的find
>>a = np.array(a)
>>a
array([1, 2, 3, 1, 2, 3, 1, 2, 3])
>>idx = np.where(a > 2)
>>idx
(array([2, 5, 8], dtype=int32),)
>>a[idx] # 这种做法并不推荐
array([3, 3, 3])
>>a[a>2] # 推荐的做法
array([3, 3, 3])
ax.scatter用法
ax.scatter(datingDataMat[:,1],datingDataMat[:,2],15.0*array(datingLabels),15.0*array(datingLabels))

升级可视化:,其他博客有误!!!
datingLabels = array(datingLabels)
idx_1= where(datingLabels==1)
print (datingDataMat[idx_1,1])
p1 = ax.scatter(datingDataMat[idx_1,0],datingDataMat[idx_1,1],marker= '*',color = 'r',label='1',s=10)
idx2= where(datingLabels==2)
p2= ax.scatter(datingDataMat[idx2,0],datingDataMat[idx2,1],marker= 'o',color ='b',label='1',s=10)
idx3= where(datingLabels==3)
p3= ax.scatter(datingDataMat[idx3,0],datingDataMat[idx3,1],marker= '+',color ='g',label='1',s=30)
plt.legend(loc = 'upper right')
plt.show()
