[关闭]
@Dukebf 2017-07-11T16:01:34.000000Z 字数 1651 阅读 1716

python之Numpy基本命令

python Numpy


前人轮子
Numpy快速处理数据
python中的矩阵运算

目录

numpy.ndarray 的操作

基本操作

  1. >>> a = numpy.array([[1,2,3,4]]) # 生成二维矩阵
  2. >>> a
  3. array([[1, 2, 3,4]])
  4. >>> a.shape # 获取矩阵的行列信息
  5. (1, 4)
  6. >>> a.reshape(2,2) # 任意修改维数
  7. array([[1, 2],
  8. [3, 4]])

快速生成序列矩阵:

arange

arange(开始值,终值,步长):类似Python的range(),注意不包括终值

  1. >>> numpy.arange(1,5,1)
  2. array([1, 2, 3, 4])

快速生成0-9的二维数组

  1. >>> numpy.arange(10).reshape(1,10)
  2. array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])

linspace

linspace(开始值, 终值, 元素个数): 默认包括终值,可以使用endpoint设置是否包括终值

  1. >>> numpy.linspace(0,1,4)
  2. array([ 0. , 0.33333333, 0.66666667, 1. ])

fromstring

fromstring(字符串, dtype=?):从字节创建数组

  1. >>> numpy.fromstring('abc',dtype=numpy.int8)
  2. array([97, 98, 99], dtype=int8)

random

产生一个长度为10,元素值为0-1的随机数的数组

  1. >>> numpy.random.rand(10)
  2. array([ 0.16730282, 0.12528572, 0.64197928, 0.19406358, 0.15757446,
  3. 0.32640898, 0.82600455, 0.37855706, 0.99059003, 0.46203915])

randint

randint(min,max,size=(row,col)) 随机整数

  1. >>> numpy.random.randint(1,10,size=(1,5))
  2. array([[9, 5, 5, 2, 1]])
  3. >>> numpy.random.randint(10,size=(1,5))
  4. array([[1, 7, 2, 8, 0]])

切片

  1. >>> a
  2. array([[ 0, 1, 2, 3],
  3. [ 4, 5, 6, 7],
  4. [ 8, 9, 10, 11],
  5. [12, 13, 14, 15]])
  6. >>> a[:,1] # 取第一列,从0开始
  7. array([ 1, 5, 9, 13])
  8. >>> a[1,:] # 取第一行
  9. array([4, 5, 6, 7])
  10. >>> a[1::]
  11. array([[ 4, 5, 6, 7],
  12. [ 8, 9, 10, 11],
  13. [12, 13, 14, 15]])
  14. >>> a[::,-1] # 取最后一列
  15. array([ 3, 7, 11, 15])

和Python的列表序列不同,通过下标范围获取的新的数组是原始数组的一个视图。它与原始数组共享同一块数据空间:

  1. >>> a
  2. array([1, 2, 3, 4, 5, 6, 7, 8])
  3. >>> b = a[2:6]
  4. >>> b
  5. array([3, 4, 5, 6])
  6. >>> b[0] = 9
  7. >>> b
  8. array([9, 4, 5, 6])
  9. >>> a
  10. array([1, 2, 9, 4, 5, 6, 7, 8])

矩阵相乘 numpy.dot(aMtx,bMtx)

  1. >>> a
  2. array([[0, 1, 2],
  3. [3, 4, 5],
  4. [6, 7, 8]])
  5. >>> b
  6. array([[0],
  7. [1],
  8. [2]])
  9. >>> numpy.dot(a,b)
  10. array([[ 5],
  11. [14],
  12. [23]])

矩阵点乘

ndarray 中,* 表示点乘,而 numpy.matrix() 类型的 * 则表示矩阵相乘.

  1. >>> a*b
  2. array([[ 0, 0, 0],
  3. [ 3, 4, 5],
  4. [12, 14, 16]])

合并向量

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注