NumPy学习手记

作者: phantomvk | 来源:发表于2016-11-24 23:06 被阅读0次

Python原生提供多种数据类型的支持,包括列表、元组、字典、集合等。不过对于数据统计、数据挖掘、机器学习来说,这些支持不够用,而NumPy则是数学运算库的不二之选。

一、安装或升级

没有pip的请先安装Python包管理工具。

安装NumPy:

$ pip install numpy

升级NumPy:

$ pip install --upgrade numpy

二、导入NumPy

请自行在文件头导入NumPy库。如没有特殊情况,后文将省略这段代码。

导入numpy所有模块,请注意不要和其他库冲突

from numpy import *

三、功能使用

3.1 mat() 数组转矩阵

使用random函数随机生成 4x4 的数组,然后mat()把数组转换为矩阵。为了方便学习,接下来的几个例子都用这里生成的变量randMat。

>>> randMat = mat(random.rand(4,4))
>>> print randMat
[[ 0.63795383  0.16175714  0.47359276  0.97462684]
 [ 0.45715522  0.77251449  0.66504488  0.07133683]
 [ 0.61471841  0.23323568  0.95002458  0.38985276]
 [ 0.26085195  0.42547952  0.84814459  0.35398749]]

3.2 shape() 查看维度

使用上个例子的randMat变量,查看这个数组的维度。

>>> print shape(randMat)
(4, 4)

矩阵行

>>> print shape(randMat)[0]
4

矩阵的列

>>> print shape(randMat)[1]
4

3.3 size 元素个数

总共16个元素

>>> print randMat.size
16

3.4 逆矩阵

注意变量后面的参数

>>> print randMat.I
[[ 0.29673207  1.05925085  1.8179092  -3.03254655]
 [ 0.36225232  1.41847049 -1.66390977  0.54925607]
 [-0.74644908 -0.81502459  0.82412699  1.31180452]
 [ 1.13439787 -0.53272813 -1.31423984  1.25639622]]

3.5 tile() 函数

定义一个比较简单的1x2矩阵

>>> a = [1, 2]

输入矩阵和参数值2

>>> print tile(a, 2)
[1 2 1 2]

>>> print tile(a, 4)
[1 2 1 2 1 2 1 2]

把参数改为元组(1,2),就变成了1x4的矩阵

>>> print tile(a, (1,2))
[[1 2 1 2]]

参数改为(2, 2),变成2x4的矩阵,行和列都是原来的2倍

>>> print tile(a, (2,2))
[[1 2 1 2]
 [1 2 1 2]]

把a在行上拓展

>>> print tile(a, (4,1))
[[1 2]
 [1 2]
 [1 2]
 [1 2]]

3.6 sum() 总计

按列总计

>>> print sum([[0,1,2],[2,1,3]],axis=0)
[2 2 5]

按行总计

>>> print sum([[0,1,2],[2,1,3]],axis=1)
[3 6]

3.7 argsort()

返回按升序排列的下标值

>>> x = array([1, 2, 3])
>>> argsort(x)
array([0, 1, 2])
>>> x = array([3, 2, 1])
>>> argsort(x)
array([2, 1, 0])
>>> x = array([3, 1, 2])
>>> argsort(x)
array([1, 2, 0])

多维矩阵的排序,使用axis参数指定排序的条件

>>> x = array([[0, 3], [2, 2]])
>>> argsort(x, axis=0)
array([[0, 1],
       [1, 0]])
>>> argsort(x, axis=1)
array([[0, 1],
       [0, 1]])

按降序排列

>>> x = array([1,2,3])
>>> argsort(-x)
array([2, 1, 0])

3.8 创建0矩阵

1x4浮点型0矩阵:

>>> print zeros(4)
[0. 0. 0. 0.]

创建一个4x4的浮点型0矩阵:

>>> print zeros([4,4])
[[ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]
 [ 0.  0.  0.  0.]]

zeros()里面,注意填写的[4,4],分别是行和列。


整形的0矩阵:

>>> print zeros([4,4],int16)
[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]

3.9 全1矩阵

2x3的全1矩阵

>>> print ones([2,3])
[[ 1.  1.  1.]
 [ 1.  1.  1.]]

生成两个2x3全1矩阵

>>> print ones([2,2,3])
[[[ 1.  1.  1.]
  [ 1.  1.  1.]]

 [[ 1.  1.  1.]
  [ 1.  1.  1.]]]

生成两个整形2x3全1矩阵

>>> print ones([2,2,3],int16)
[[[1 1 1]
  [1 1 1]]

 [[1 1 1]
  [1 1 1]]]

相关文章

  • NumPy学习手记

    Python原生提供多种数据类型的支持,包括列表、元组、字典、集合等。不过对于数据统计、数据挖掘、机器学习来说,这...

  • numpy 学习(待更新)

    numpy 学习 标签(空格分隔): 机器学习 Numpy 入门 一、安装 pip install numpyor...

  • Numpy 学习图谱

    在学习 Numpy 的时候,整理了一份 Numpy 学习图谱,希望同样可以帮助到想要入门 Numpy 的朋友。 N...

  • Python-03 ~ 机器学习库 之 NumPy

    NumPy是机器学习中最常用的计算科学库,今天就来看看吧 NumPy简单介绍 NumPy的简单介绍:NumPy是机...

  • Numpy学习笔记

    Numpy学习笔记 Numpy基础 Numpy的数组类也叫ndarray,也就是大家所熟悉的array;ndarr...

  • 机器学习之numpy和matplotlib学习(十一)

    今天继续来学习numpy。学习有关复数矩阵在numpy中的创建和使用。 运行结果: 更新完毕##

  • Python机器学习基础教程学习笔记(1)——用到的库

    Python机器学习基础教程学习笔记(1)——用到的库 1 Numpy numpy数组 2 Scipy scipy...

  • Python学习笔记3-Numpy

    Numpy 学习莫烦python,非常感谢~记录自己在学习python过程中的点滴。 Numpy 安装 Anaco...

  • Numpy 学习

    创建指定数值的数组 高级通用函数的特性

  • numpy学习

    按序数获取数据。不同的书写方式,可能维度会降低,可能跟原先的一样。 在数组中间某行获取数据有两种方式:整数和切片混...

网友评论

    本文标题:NumPy学习手记

    本文链接:https://www.haomeiwen.com/subject/szdipttx.html