html tool

显示标签为“numpy”的博文。显示所有博文
显示标签为“numpy”的博文。显示所有博文

2018年4月8日星期日

knn-注释


 18 def classify0(inX, dataSet, labels, k):                   
 19     dataSetSize = dataSet.shape[0]                         
 20     diffMat = tile(inX, (dataSetSize,1)) - dataSet  #参见 numpy.tile(A, B)     
 23     sqDiffMat = diffMat**2
 24     sqDistances = sqDiffMat.sum(axis=1)  #参见sum(axis=1)                   
 25     distances = sqDistances**0.5 
 26     sortedDistIndicies = distances.argsort()               
 27     classCount={}                                         
 28     for i in range(k):
 29         voteIlabel = labels[sortedDistIndicies[i]]
30         classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1

参考:
sum(axis=1) -- https://blog.csdn.net/ikerpeng/article/details/17026011

2.python的 numpy当中
现在对于数据的处理更多的还是numpy。没有axis参数表示全部相加,axis=0表示按列相加,axis=1表示按照行的方向相加
[python] view plain copy
  1. >>> import numpy as np  
  2. >>> a=np.sum([[0,1,2],[2,1,3]])  
  3. >>> a  
  4. 9  
  5. >>> a.shape  
  6. ()  
  7. >>> a=np.sum([[0,1,2],[2,1,3]],axis=0)  
  8. >>> a  
  9. array([225])  
  10. >>> a.shape  
  11. (3,)  
  12. >>> a=np.sum([[0,1,2],[2,1,3]],axis=1)  
  13. >>> a  
  14. array([36])  
  15. >>> a.shape  
  16. (2,)  

numpy.tile(A,B) -- https://blog.csdn.net/ksearch/article/details/21388985


重复A,B次,这里的B可以时int类型也可以是远组类型。
[python] view plain copy
  1. >>> import numpy  
  2. >>> numpy.tile([0,0],5)#在列方向上重复[0,0]5次,默认行1次  
  3. array([0000000000])  
  4. >>> numpy.tile([0,0],(1,1))#在列方向上重复[0,0]1次,行1次  
  5. array([[00]])  
  6. >>> numpy.tile([0,0],(2,1))#在列方向上重复[0,0]1次,行2次  
  7. array([[00],  
  8.        [00]])  
  9. >>> numpy.tile([0,0],(3,1))  
  10. array([[00],  
  11.        [00],  
  12.        [00]])  
  13. >>> numpy.tile([0,0],(1,3))#在列方向上重复[0,0]3次,行1次  
  14. array([[000000]])  
  15. >>> numpy.tile([0,0],(2,3))"font-family: Arial, Helvetica, sans-serif;">#在列方向上重复[0,0]3次,行2次  
  16. array([[000000],  
  17.        [000000]])  

2017年12月21日星期四

转:python numpy scipy pandas windows 安装


http://blog.csdn.net/zuyuanzhu/article/details/44677321

Numpy是以矩阵为基础的数学计算模块,纯数学。
Scipy基于Numpy,科学计算库,有一些高阶抽象和物理模型。比方说做个傅立叶变换,这是纯数学的,用Numpy;做个滤波器,这属于信号处理模型了,在Scipy里找。
Pandas提供了一套名为DataFrame的数据结构,比较契合统计分析中的表结构,并且提供了计算接口,可用Numpy或其它方式进行计算



windows 环境安装
1.下载Python
选择Download Python 2.7.9 ,没有64位选择。自定义安装目录为D:\Python27,以后重装系统后还能继续使用。

2.IDE
Python自带,Windows开始菜单中含有启动图标

3.PIP
 PIP是拓展库安装工具
官方Python不带PIP,下载好的numpy等扩展库,在numpy当前目录中打开CMD命令行,通过以下指令安装
[python] view plain copy
  1. python setup.py install   
会发现类似“无法识别字符”的英文提示,这时候就需要先安装扩展库安装工具PIP。
  3.1下载PIP
    选择 pip-6.0.8.tar.gz (md5,pgp)  文件
  3.2安装PIP
     解压pip-6.0.8.tar.gz,在当前目录中开启CMD命令行,输入 以下指令进行安装
[python] view plain copy
  1. python setup.py install   
    

4.安装numpy
   numpy库利用PIP工具安装
   4.1 下载numpy
    numpy版本为1.9.2,适用于 2.7.X版的32位Python,虽然操作系统为64位,但上面第1步从官网下载的Python为32位。whl其实是一种压缩文件格式,改为zip后可直接解压,这里通过PIP安装,无需解压。
    4.2安装numpy
    在numpy‑1.9.2+mkl‑cp27‑none‑win32.whl  所在下载目录中打开CMD,输入 
[python] view plain copy
  1. pip install numpy‑1.9.2+mkl‑cp27‑none‑win32.whl    
    注意,不要为了省事将numpy‑1.9.2+mkl‑cp27‑none‑win32.whl 改为numpy.whl,否则无法安装,如下图。文件名太长,可以复制粘贴。
安装的sumpy工具包在D:\Python27\Lib\site-packages目录下

5.验证numpy
   安装完成后测试numpy是否安装成功。
  Python中新建文件NumpyTest.py,输入以下代码
[python] view plain copy
  1. from numpy import matrix  
  2. ss= matrix([[1,2,3],[4,5,6]])  
  3. print ss  
   运行结果为
[python] view plain copy
  1. [[1 2 3]  
  2.  [4 5 6]]  
说明numpy安装成功。

6.scipy
   scipy等其他扩展库安装方法与上述方式雷同,几乎所有扩展包都可以在http://www.lfd.uci.edu/~gohlke/pythonlibs中找到,在这里要感谢University of California的分享。

Reference:

numpy setup 依赖于python-dev

first : python-dev setup
second: pip install numpy

2016年10月31日星期一

python使用matplotlib绘图 - x轴

add:http://www.cnblogs.com/qianlifeng/archive/2012/02/13/2350086.html

让我们在x轴上的每个bar进行说明。比如第一个是“男”,第二个是“女”。
import matplotlib.pyplot as plt

plt.xlabel(u'性别')
plt.ylabel(u'人数')

plt.xticks((0,1),(u'男',u'女'))

plt.bar(left = (0,1),height = (1,0.5),width = 0.35)

plt.show()
plt.xticks的用法和我们前面说到的left,height的用法差不多。如果你有几个bar,那么就是几维的元组。第一个是文字的位置,第二个是具体的文字说明。不过这里有个问题,很显然我们指定的位置有些“偏移”,最理想的状态应该在每个矩形的中间。你可以更改(0,1)=>( (0+0.35)/2 ,(1+0.35)/2 )不过这样比较麻烦。我们可以通过直接指定bar方法里面的align="center"就可以让文字居中了。


2016年10月27日星期四

Python numpy 按矩阵的某一列排序

利用numpy的argsort对需要排序的列标记序号(索引),然后直接改变原始矩阵的索引就行啦~