1、在python环境中导入numpy包,并命名为np

[python]  ​​view plain​​​  ​​​copy​


  1. >>> import numpy as np

2、查看numpy版本和配置信息

[python]  ​​view plain​​​  ​​​copy​


  1. >>> print np.__version__
  2. >>> np.__config__.show()

3、创建零向量zeros函数

[python]  ​​view plain​​​  ​​​copy​


  1. >>> z=np.zeros((2,3))
  2. >>> print z
  3. [[ 0.  0.  0.]
  4. 0.  0.  0.]]

4、将上面的零向量的第二行第三列元素置为1。注意python中行列下标是从0开始。

[python]  ​​view plain​​​  ​​​copy​


  1. >>>z[1,2]=1
  2. >>> print z
  3. [[ 0.  0.  0.]
  4. 0.  0.  1.]]

5、arange函数,创建一个在给定范围的向量。

[python]  ​​view plain​​​  ​​​copy​


  1. >>> z=np.arange(1,101)    %1~100范围,注意不包括101
  2. >>> print z

6、reshape函数,将array变形为矩阵

[python]  ​​view plain​​​  ​​​copy​


  1. >>> Z = np.arange(9).reshape(3,3)
  2. >>> print Z
  3. [[0 1 2]
  4. 3 4 5]
  5. 6 7 8]]

7、nonzero函数,寻找非0元素的下标

[python]  ​​view plain​​​  ​​​copy​


  1. >>> nz=np.nonzero([1,2,3,0,0,4,0])
  2. >>> nz
  3. (array([0, 1, 2, 5]),)

8、eye函数,生成单位向量

[python]  ​​view plain​​​  ​​​copy​


  1. >>> z=np.eye(3)
  2. >>> print z
  3. [[ 1.  0.  0.]
  4. 0.  1.  0.]
  5. 0.  0.  1.]]

9、diag函数,diagonal对角线。

[python]  ​​view plain​​​  ​​​copy​


  1. >>> z=np.diag([1,2,3,4],k=0)   %k=0,以[1,2,3,4]为对角线
  2. >>> print z
  3. [[1 0 0 0]
  4. 0 2 0 0]
  5. 0 0 3 0]
  6. 0 0 0 4]]

  7. >>> z=np.diag([1,2,3,4],k=1)   %k=1,[1,2,3,4]在对角线上一行
  8. >>> print z
  9. [[0 1 0 0 0]
  10. 0 0 2 0 0]
  11. 0 0 0 3 0]
  12. 0 0 0 0 4]
  13. 0 0 0 0 0]]

  14. >>> z=np.diag([1,2,3,4],k=-1)  %k=-1,[1,2,3,4]在对角线下一行
  15. >>> print z
  16. [[0 0 0 0 0]
  17. 1 0 0 0 0]
  18. 0 2 0 0 0]
  19. 0 0 3 0 0]
  20. 0 0 0 4 0]]

10、random模块的random函数,生成随机数

[python]  ​​view plain​​​  ​​​copy​


  1. >>> Z = np.random.random((3,3))
  2. >>> print Z
  3. [[ 0.95171484  0.61394126  0.38864802]
  4. 0.41943918  0.9398714   0.31608202]
  5. 0.9993507   0.91717093  0.73002723]]

11、创建一个8*8的“棋盘”矩阵。

[python]  ​​view plain​​​  ​​​copy​


  1. >>> z=np.zeros((8,8),dtype=int)
  2. >>> z[1::2,::2]=1     %1、3、5、7行&&0、2、4、6列的元素置为1
  3. >>> print z
  4. [[0 0 0 0 0 0 0 0]
  5. 1 0 1 0 1 0 1 0]
  6. 0 0 0 0 0 0 0 0]
  7. 1 0 1 0 1 0 1 0]
  8. 0 0 0 0 0 0 0 0]
  9. 1 0 1 0 1 0 1 0]
  10. 0 0 0 0 0 0 0 0]
  11. 1 0 1 0 1 0 1 0]]
  12. >>> z[::2,1::2]=1
  13. >>> print z
  14. [[0 1 0 1 0 1 0 1]
  15. 1 0 1 0 1 0 1 0]
  16. 0 1 0 1 0 1 0 1]
  17. 1 0 1 0 1 0 1 0]
  18. 0 1 0 1 0 1 0 1]
  19. 1 0 1 0 1 0 1 0]
  20. 0 1 0 1 0 1 0 1]
  21. 1 0 1 0 1 0 1 0]]

12、min()、max()函数

[python]  ​​view plain​​​  ​​​copy​


  1. >>> z=np.random.random((10,10))
  2. >>> zmin,zmax=z.min(),z.max()
  3. >>> print zmin,zmax
  4. 0.014230501632 0.99548760299

13、函数tile(A,reps),reps即重复的次数,不仅可以是数字,还可以是array。比如构造棋盘矩阵:

[python]  ​​view plain​​​  ​​​copy​


  1. >>> z=np.tile(np.array([[0,1],[0,1]]),(4,4))
  2. >>> print z
  3. [[0 1 0 1 0 1 0 1]
  4. 0 1 0 1 0 1 0 1]
  5. 0 1 0 1 0 1 0 1]
  6. 0 1 0 1 0 1 0 1]
  7. 0 1 0 1 0 1 0 1]
  8. 0 1 0 1 0 1 0 1]
  9. 0 1 0 1 0 1 0 1]
  10. 0 1 0 1 0 1 0 1]]

14、归一化,将矩阵规格化到0~1,即最小的变成0,最大的变成1,最小与最大之间的等比缩放。

[python]  ​​view plain​​​  ​​​copy​


  1. >> Z = np.random.random((5,5))
  2. >>> Zmax,Zmin = Z.max(), Z.min()
  3. >>> Z = (Z - Zmin)/(Zmax - Zmin)
  4. >>> print Z
  5. [[ 0.          0.32173291  0.17607851  0.6270374

  6. 0.95000808]
  7. 0.49153473  0.70465605  0.61930085  0.00303294  1.

  8. ]
  9. 0.4680561   0.88742782  0.29899683  0.80704789

  10. 0.12300414]
  11. 0.05094248  0.23065875  0.82776775  0.07873239

  12. 0.50644422]
  13. 0.27417053  0.78679222  0.517819    0.5649124   0.4716856

  14. ]]

15、矩阵点乘

[python]  ​​view plain​​​  ​​​copy​


  1. >>> z=np.dot(np.ones((5,3)),np.ones((3,2)))
  2. >>> print z
  3. [[ 3.  3.]
  4. 3.  3.]
  5. 3.  3.]
  6. 3.  3.]
  7. 3.  3.]]

16、矩阵相加,5*5矩阵+1*5的向量,相当于每一行都加上1*5矩阵

[python]  ​​view plain​​​  ​​​copy​


  1. >>> Z = np.zeros((5,5))
  2. >>> Z += np.arange(5)
  3. >>> print Z
  4. [[ 0.  1.  2.  3.  4.]
  5. 0.  1.  2.  3.  4.]
  6. 0.  1.  2.  3.  4.]
  7. 0.  1.  2.  3.  4.]
  8. 0.  1.  2.  3.  4.]]

17、linspace(线性等分向量(linear space)函数,在给定区间中生成均匀分布的给定个数。
函数原型 linspace(start, stop, num=50, endpoint=True, retstep=False)

[python]  ​​view plain​​​  ​​​copy​


  1. >>> Z = np.linspace(0,10,11,endpoint=True, retstep=False)
  2. >>> print Z
  3. [  0.   1.   2.   3.   4.   5.   6.   7.   8.   9.  10.]

生成0~10之间均匀分布的11个数,包括0和1。

若endpoint=False,则10不包括在里面。

若retstep=False,会同时返回均匀区间中每两个数的间隔。


18、sort函数。调用random模块中的random函数生成10个随机数,然后sort排序。

[python]  ​​view plain​​​  ​​​copy​


  1. >>> Z = np.random.random(10)
  2. >>> Z.sort()
  3. >>> print Z
  4. [ 0.15978787  0.28050494  0.35865916  0.40047826  0.45141311
  5. 0.4828367   0.66133575  0.66775779  0.69278544  0.98095989]

19、allclose函数,判断两个array在误差范围内是否相等

函数原型allclose(a, b, rtol=1e-05, atol=1e-08),若absolute(a - b) <= (atol + rtol * absolute(b))则相等。

[python]  ​​view plain​​​  ​​​copy​


  1. A = np.random.randint(0,2,5)
  2. B = np.random.randint(0,2,5)
  3. equal = np.allclose(A,B)
  4. print equal

20、mean函数,求平均值

[python]  ​​view plain​​​  ​​​copy​


  1. >>> Z = np.random.random(30)
  2. >>> m = Z.mean()
  3. >>> print m
  4. 0.362299527973

  5. >>> A = np.random.randint(0,2,5)
  6. >>> B = np.random.randint(0,2,5)
  7. >>> equal = np.allclose(A,B)
  8. >>> print equal
  9. False

注:randint(min,max,num)生成大小为num的array,数值范围min~max