zoukankan      html  css  js  c++  java
  • 【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()

  • 相关阅读:
    Vue(小案例_vue+axios仿手机app)_go实现退回上一个路由
    nyoj 635 Oh, my goddess
    nyoj 587 blockhouses
    nyoj 483 Nightmare
    nyoj 592 spiral grid
    nyoj 927 The partial sum problem
    nyoj 523 亡命逃窜
    nyoj 929 密码宝盒
    nyoj 999 师傅又被妖怪抓走了
    nyoj 293 Sticks
  • 原文地址:https://www.cnblogs.com/SoulSecret/p/11788064.html
Copyright © 2011-2022 走看看