• 【Python科学计算】Numpy——ndarry


    本篇主要用于自己学习Python科学计算的学习笔记,便于之后细节不清时的查阅。

    主要参考内容:莫烦的Python——Numpy&Pandas教程

           《Python科学计算》张若愚著,清华大学出版社

     

    numpy的使用会使很多计算更快,因为Numpy是基于C语言编写的,可以提高计算速度

     1 import numpy as np
     2 
     3 array = np.array([[1,2,3],
     4                  [2,3,4]])
     5 #将列表 [[1, 2, 3], [2 ,3 ,4]] 输出型为2行3列的矩阵
     6 print(array)
     7 print("number of dim:",array.ndim)  #输出矩阵的维度
     8 print("shape",array.shape)          #输出矩阵的形状
     9 print("size",array.size)            #输出矩阵的大小(2*3)
    10 
    11 b = np.array([1,2,3,4])
    12 print(b)
    13 print(b.shape)
    View Code

    可以通过修改数组的shape属性,在保持数组元素个数不变的情况下,改变数组每个轴的长度。

    1 import numpy as np
    2 
    3 array = np.array([[1,2,3],
    4                  [2,3,4]])
    5 array.shape = 3,2
    6 print(array)
    View Code

    当设置某个轴的元素为-1时,将自动计算此轴的长度

    1 import numpy as np
    2 
    3 array = np.array([[1,2,3],
    4                  [2,3,4],
    5                   [3,4,5],
    6                   [4,5,6]])
    7 array.shape = 3,-1
    8 print(array)
    View Code

    使用数组的reshape()方法,可以创建指定形状的新数组,而原数组的形状保持不变;

    1 a = np.array([1, 2, 3, 4])
    2 b = a.reshape((2,2))
    3 print(a)
    4 print(b)
    View Code

    值的注意的一点是,数组a和数组b共享数据存储空间,因此修改其中一个数组的元素都会修改另一个数组的内容

    1 a = np.array([1, 2, 3, 4])
    2 b = a.reshape((2,2))
    3 a[1] = 1222
    4 print(a)
    5 print(b)
    View Code

     

    接下来就是矩阵的建立

    1 a = np.array([2, 3, 4])
    2 print(a)
    3 #可以看到和列表相差不大,但是没有逗号
    4 print(a.dtype)
    5 a = np.array([2, 3, 4],dtype=np.int64)
    6 print(a.dtype)
    7 a = np.array([2, 3, 4],dtype=np.float64)
    8 print(a.dtype)
    View Code

    在创建的过程中也可以对其中数值类型进行定义。Numpy的数值对象的运算速度比Python内置类型的运算速度要慢,若大量使用,应尽量避免。

    对数组的元素类型进行转换。

    1 import numpy as np
    2 
    3 t1 = np.array([1,2,3,4],dtype = np.float)
    4 t2 = np.array([1,2,3,4],dtype = np.complex)
    5 t3 = t1.astype(np.int32)
    6 t4 = t2.astype(np.complex64)
    View Code

    建立零矩阵、一矩阵、空矩阵

    1 import numpy as np
    2 
    3 a = np.zeros( (3,4) )
    4 #a = np.zeros( (3,4) ,dtype=np.float)
    5 #a = np.ones( (3,4) )
    6 #a = np.empty( (3,4))
    7 #a = np.empty( (3,4) , dtype = np.int)
    8 print(a)
    View Code

    使用full()对数组元素进行指定值的初始化

    1 import numpy as np
    2 
    3 a = np.full(4, np.pi)
    4 print(a)
    View Code

    此外,zeros_like()、ones_like()、empty_like()等函数创建与参数数组形状相同和类型相同的数值,因此与zeros_like(a)和zeros(a.shape,a.dtype)效果相同

    arange()可以通过开始值、终值、步长来创建表示等差数列的一维数组(不包含终值);

    1 a = np.arange(0, 1, 0.1)
    2 print(a)
    3 #结果:[0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
    View Code

    linspace()

  • 相关阅读:
    Postman初探
    web页面和本地数据对比问题
    Katalon Recorder初探
    Flask入门
    自我实现预言
    gulp 安装 依赖
    maven环境
    加解密 生成 X.509格式,DER编码,后缀名.cer。加密公钥证书
    我的魔法 公式找回中
    gulp 自动ftp至服务器时,处理开发 测试服务器地址问题
  • 原文地址:https://www.cnblogs.com/SoulSecret/p/11788064.html
Copyright © 2020-2023  润新知