zoukankan      html  css  js  c++  java
  • Python_numpy模块介绍

       Python中,NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

     使用前需导入numpy模块

    1.  创建矩阵

     1 # 导入模块
     2 import numpy as np
     3 
     4 # 创建一维array对象
     5 a1 = np.array([1, 3, 2])   
     6         # 创建一个2 x 3 矩阵 , 输入参数实际为列表或元组,列表或元组内部元素为单个数值
     7 
     8 # 创建二维array对象
     9 a1 = np.array([1, 3, 2], [4, 3, 6])   
    10         # 创建一个2 x 3 矩阵 , 输入参数实际为列表或元组,列表或元组内部元素又是列表或元组数值

    2. 矩阵元素获取

     1 import numpy as np
     2 
     3 a1 = np.array([1, 3, 2])   
     4 a2 = np.array([[1, 3, 2], [4, 3, 6]])   
     5 
     6 # 获取矩阵的行数和列数
     7 size = a1.shape()  # 返回元组(1, 0)
     8 
     9 # 获取一维矩阵的第三个元素
    10 b1 = a1[2]  
    11 
    12 
    13 # 获取二维矩阵的第二行
    14 b2 = a2[1]   或 b2 = a2[1, ]  或 b2 = a2[1, :] 
    15 
    16 # 获取二维矩阵的第二列
    17 b3 = a2[:, 1]   # 注:返回值为行向量形式
    18 
    19 # 获取二维矩阵的第1,2行的第3,4两列
    20 b4 = a2[0:2, 2:4]
    21 
    22 
    23 # 获取二维矩阵的第二行第三个元素
    24 b3 = a2[1, 2]

    3. 按条件截取

    按条件截取其实是在[](方括号)中传入自身的布尔语句.

     1 import numpy as np
     2  
     3 a3 = np.array([[1, 3, 2], [4, 3, 6], [7,5,3]])  
     4 
     5 
     6 c1 = a3 > 2  
     7 print(c1)
     8 
     9 # 返回布尔值矩阵
    10 [[False  True False]
    11  [ True  True  True]
    12  [ True  True  True]]
    13 
    14 
    15 
    16 c2 = a3[a3 > 2]
    17 print(c2)
    18 
    19 # 返回满足条件的一维列表
    20 [3 4 3 6 7 5 3]

    4. 矩阵合并

     1 import numpy as np
     2 
     3 a1 = np.array([[7, 5, 2], [4, 2, 5]])   
     4 a2 = np.array([[1, 3, 2], [4, 3, 6]])   
     5 
     6 # 按行合并
     7 h = np.hstack([a1, a2])  或 h = np.hstack((a1, a2)) 
     8 print(h)
     9 # 返回
    10 [[7 5 2 1 3 2]
    11  [4 2 5 4 3 6]]
    12 
    13 # 按列合并
    14 v = np.vstack([a1, a2])  或 h = np.vstack((a1, a2)) 
    15 print(v)
    16 # 返回
    17 [[7 5 2]
    18  [4 2 5]
    19  [1 3 2]
    20  [4 3 6]]
    21 
    22 
    23 # 矩阵合并也可用concatenate方法
    24 np.concatenate( (a1,a2), axis=0 ) 等价于 np.vstack( (a1,a2) )
    25 np.concatenate( (a1,a2), axis=1 ) 等价于 np.hstack( (a1,a2) )

    5.  通过函数常见矩阵

     1 import numpy as np
     2 
     3 # 通过linspace方法创建等差数列,首位为2,末位为10,包含5个元素的等差数列
     4 a1 = np.linspace(2, 10, 5)    # 返回[  2.   4.   6.   8.  10.]
     5 
     6 # 通过logspace方法创建等比数列,首位为10^2, 末位为10^5, 包含4个元素的等比数列
     7 a2 = np.logspace(2, 5, 4)      # 返回[    100.    1000.   10000.  100000.]
     8 
     9 # 通过ones方法创建全1矩阵
    10 a3 = np.ones(3,4)    # 创建3*4的全 1 矩阵
    11 
    12 # 通过zeros方法创建全0矩阵
    13 a3 = np.zeros(3,4)    # 创建3*4的全 0 矩阵
    14 
    15 # 通过eye方法创建单位矩阵
    16 a3 = np.eye(3,4)    # 创建3*4的单位矩阵
    17 
    18 # 通过fromstring方法将字符串转换成array对象,可以将字符批量转换成ASCII码
    19 a = "abcdef"
    20 b = np.fromstring(a,dtype=np.int8) # 因为一个字符为8为,所以指定dtype为np.int8
    21 print(b) # 返回 [ 97  98  99 100 101 102]
    22 
    23 # 通过fromfunction方法根据行号和列号生成矩阵
    24 def f1(i,j): 
    25     return i+j
    26 a = np.fromfunction(func,(5,6)) 
    27 # 第一个参数为指定函数,第二个参数为列表list或元组tuple,说明矩阵的大小
    28 print(a)
    29 # 返回
    30 [[ 0.  1.  2.  3.  4.  5.]
    31  [ 1.  2.  3.  4.  5.  6.]
    32  [ 2.  3.  4.  5.  6.  7.]
    33  [ 3.  4.  5.  6.  7.  8.]
    34  [ 4.  5.  6.  7.  8.  9.]]

    6. 矩阵运算

    对每个元素的运算

    矩阵函数    说明
    np.sin(a) 对矩阵a中的每个元素取正弦, sin(x)
    np.cos(a)  对矩阵a中的每个元素取余弦, cos(x)
    np.tan(a)  对矩阵a中的每个元素取正切, tan(x)
    np.arcsin(a)  对矩阵a中的每个元素取反正弦, arsin(x)
    np.arccos(a)  对矩阵a中的每个元素取反余弦, arcos(x)
    np.arctan(a)  对矩阵a中的每个元素取反正切, artan(x)
    np.sqrt(a)  对矩阵a中的每个元素开方, sqrt(x)
  • 相关阅读:
    Angular @Input讲解及用法
    跨浏览器窗口通讯 ,7种方式
    map和forEach的区别
    纯CSS圆环与圆
    如何理解时间复杂度和空间复杂度
    毁灭
    P1631 序列合并
    plotly dash
    Tkinter
    mysql 和 sqlalchemy 的一个测试环境
  • 原文地址:https://www.cnblogs.com/carreyBlog/p/11628851.html
Copyright © 2011-2022 走看看