博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python Numpy 基本属性、常用方法
阅读量:7279 次
发布时间:2019-06-30

本文共 3864 字,大约阅读时间需要 12 分钟。

hot3.png

1. 基本属性


No. 属性名 描述
01 shape 向量、矩阵的结构
02 dtype 向量、矩阵的数据类型
03 ndim 向量、矩阵维度
04 size 向量、矩阵的元素个数
  • 测试代码

    import numpy as np# 定义数据a = np.arange(15).reshape(3, 5)# 基本属性print(a.shape)print(a.dtype)print(a.ndim)print(a.size)
  • 结果

    (3, 5)int32215

2. 常用数学运算


1. 基本运算

  • 测试代码

    import numpy as np# 定义数据a = np.array([[1, 2], [3, 4]])b = np.array([[10, 20], [30, 40]])# 基本运算# 矩阵运算print(b - a, '\n')# 矩阵与常数运算print(b - 1, '\n')# 矩阵次幂运算print(a ** 2)
  • 结果

    [[ 9 18] [27 36]][[ 9 19] [29 39]][[ 1  4] [ 9 16]]

2. 矩阵乘法(2种)

  • 测试代码

    import numpy as npa = np.array([[1, 2], [3, 4]])b = np.array([[10, 20], [30, 40]])# *号乘法,对应位置数据进行相乘print(a * b, '\n')# 矩阵乘法print(a.dot(b)) # print(np.dot(a, b))
  • 结果

    [[ 10  40] [ 90 160]][[ 70 100] [150 220]]

3. 最大值、最小值

  • 测试代码

    import numpy as npa = np.array([[10, 20], [30, 40]])# 最大值print(a.max())# 最小值print(a.min())
  • 结果

    4010

4. 按行、列求和

  • 测试代码

    import numpy as npa = np.array([[10, 20], [30, 40]])# 按行求和print(a.sum(axis=1), '\n')# 按列求和print(a.sum(axis=0))
  • 结果

    [30 70][40 60]

5. 比较运算

  • 测试代码

    import numpy as npa = np.array([[10, 20, 80], [30, 40, 60]])# 判断是否等于10print(a == 10, '\n')# 判断是否大于30print(a > 35, '\n')# 可以使用判断结果作为索引得到数据dataGt35 = (a > 35)print(a[dataGt35])
  • 结果

    [[ True False False] [False False False]][[False False  True] [False  True  True]][80 40 60]

6. 向上、向下取整

  • 测试代码

    import numpy as npa = 10 * np.random.random((2, 3))print(a, '\n')# 向上取整print(np.ceil(a), '\n')# 向下取整print(np.floor(a))
  • 结果

    [[4.57151067 9.42335419 8.83125138] [7.55599306 7.10207961 6.26744524]][[ 5. 10.  9.] [ 8.  8.  7.]][[4. 9. 8.] [7. 7. 6.]]

7. 其他常用运算(e的次幂、开平方)

  • 测试代码

    import numpy as npa = np.array([[1, 2], [3, 4]])# e的次幂操作print(np.exp(a), '\n')# 开平方操作print(np.sqrt(a))
  • 结果

    [[ 2.71828183  7.3890561 ] [20.08553692 54.59815003]][[1.         1.41421356] [1.73205081 2.        ]]

3. 与、或操作


  • 测试代码

    import numpy as npa = np.array([[10, 20], [30, 40]])# 与操作print((a > 15) & (a < 35), '\n')print((a > 15) & (a < 35), '\n')# 或操作print((a == 10) | (a < 30))
  • 结果

    [[False  True] [ True False]][[ True  True] [False False]]

4. 常用方法


No. 方法 描述 举例
01 ravel 将矩阵转换成向量 a.ravel()
02 T 转置矩阵 a.T
03 reshape 重新定义向量、矩阵结构 a.reshape(3, 4)
04 hstack 按行进行矩阵拼接 np.hstack((a, b))
05 vstack 按列进行矩阵拼接 np.vstack((a, b))
06 hsplit 按行切分矩阵 np.hsplit(a, 3)
07 vsplit 按列切分矩阵 np.vsplit(a, 3)
08 tile 使用现有矩阵扩展矩阵 np.tile(a, (3, 5))

1. ravel

  • 测试代码

    import numpy as npa = np.array([[10, 20], [30, 40]])print(a.ravel())
  • 结果

    [10 20 30 40]

2. T

  • 测试代码

    import numpy as npa = np.array([[10, 20], [30, 40]])print(a.T)
  • 结果

    [[10 30] [20 40]]

3. reshape

  • 测试代码

    import numpy as npa = np.arange(15)# 将向量a重新定义结构为(3, 5)的矩阵print(a.reshape((3, 5)), '\n')# 如果设置-1,则表示自动计算数值print(a.reshape((5, -1)))
  • 结果

    [[ 0  1  2  3  4] [ 5  6  7  8  9] [10 11 12 13 14]][[ 0  1  2] [ 3  4  5] [ 6  7  8] [ 9 10 11] [12 13 14]]

4. 矩阵拼接

  • 测试代码

    import numpy as npa = np.array([[1, 2], [3, 4]])b = np.array([[5, 6], [7, 8]])# 横向拼接print(np.hstack((a, b)), '\n')# 纵向拼接print(np.vstack((a, b)))
  • 结果

    [[1 2 5 6] [3 4 7 8]][[1 2] [3 4] [5 6] [7 8]]

5. 矩阵切分

  • 测试代码

    import numpy as npa = np.arange(27).reshape(3, 9)# 按行切分print(np.hsplit(a, 3), '\n')# 自定义切分位置print(np.hsplit(a, (3, 5, 7)), '\n')b = a.T# 按列切分print(np.vsplit(b, 3))
  • 结果

    [array([[ 0,  1,  2],   [ 9, 10, 11],   [18, 19, 20]]), array([[ 3,  4,  5],   [12, 13, 14],   [21, 22, 23]]), array([[ 6,  7,  8],   [15, 16, 17],   [24, 25, 26]])][array([[ 0,  1,  2],       [ 9, 10, 11],       [18, 19, 20]]), array([[ 3,  4],       [12, 13],       [21, 22]]), array([[ 5,  6],       [14, 15],       [23, 24]]), array([[ 7,  8],       [16, 17],       [25, 26]])][array([[ 0,  9, 18],       [ 1, 10, 19],       [ 2, 11, 20]]), array([[ 3, 12, 21],       [ 4, 13, 22],       [ 5, 14, 23]]), array([[ 6, 15, 24],       [ 7, 16, 25],       [ 8, 17, 26]])]

6. tile

  • 测试代码

    import numpy as npa = np.arange(6).reshape(2, 3)# 扩展矩阵print(np.tile(a, (2, 2)))
  • 结果

    [[0 1 2 0 1 2] [3 4 5 3 4 5] [0 1 2 0 1 2] [3 4 5 3 4 5]]

转载于:https://my.oschina.net/shadowolf/blog/1839321

你可能感兴趣的文章
Linux服务器性能评估与优化、监控利器---dstat应用
查看>>
linux添加新硬盘、格式化以及自动挂载
查看>>
SQLSERVER备份脚本
查看>>
zabbix 自动发现 tomcat日志异常文件数量
查看>>
javascript的正则表达式
查看>>
windows服务器远程桌面(rdpclip.exe)的妙用
查看>>
使用inotify监视Linux文件变化
查看>>
SQLite第八课 auth.c授权文件解析
查看>>
nginx日志切割
查看>>
配置Samba服务器
查看>>
AIX内存性能优化和监视
查看>>
haproxy根据客户端浏览器进行跳转
查看>>
12c DataGuard switchover to 'primary'
查看>>
Django返回json数据
查看>>
在Linq to Entity 中使用lambda表达式来实现Left Join和Join
查看>>
Linux自学笔记——http协议进阶及httpd配置(2)
查看>>
Linux必会原理之软连接文件和硬链接文件的区别
查看>>
ORACLE 12c常见问题解决
查看>>
查看安装的tensorflow版本号和路径
查看>>
依靠自学,争取帮助
查看>>