zoukankan      html  css  js  c++  java
  • numpy 学习笔记

    numpy 学习笔记

    导入 numpy 包

    import numpy as np
    

    声明 ndarray 的几种方法

    方法一,从list中创建

    l = [[1,2,3], [4,5,6], [7,8,9]]
    matrix = np.array(l)
    print(matrix)
    
    [[1 2 3]
     [4 5 6]
     [7 8 9]]
    

    方法二,指定维度,不赋值

    matrix = np.ndarray(shape=(3,4))
    print(matrix)
    
    [[9.66308774e-312 2.47032823e-322 0.00000000e+000 0.00000000e+000]
     [1.89146896e-307 2.42336543e-057 5.88854416e-091 9.41706373e-047]
     [5.44949034e-067 1.46609735e-075 3.99910963e+252 3.43567991e+179]]
    

    由上述的输出可见,矩阵内部的值未初始化,其实这都是原来对应内存地址中的数值

    方法三,指定维度,初始化成全零的矩阵

    matrix = np.zeros(shape=[3,4])
    print(matrix)
    
    [[0. 0. 0. 0.]
     [0. 0. 0. 0.]
     [0. 0. 0. 0.]]
    

    方法四,使用默认参数,赋值成从0至arange的一组数

    使用默认参数(arange),生成从0至arange的一组数据

    matrix = np.arange(12).reshape(3,4)
    print(matrix)
    
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    

    方法五,生成随机数数组

    arr = np.random.random((1,5))  # 生成 1 行 5 列的一组数
    
    [[ 2.42219258  0.67773029  5.412364    6.21824333  1.2890334 ]]
    

    数值计算

    操作全部元素

    乘法

    print(matrix)
    print("after times 10 on every elements:")
    print(matrix * 10)
    
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    after times 10 on every elements:
    [[  0  10  20  30]
     [ 40  50  60  70]
     [ 80  90 100 110]]
    

    加法

    print(matrix)
    print("after plus 10 on every elements:")
    print(matrix + 10)
    
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    after plus 10 on every elements:
    [[10 11 12 13]
     [14 15 16 17]
     [18 19 20 21]]
    

    操作部分元素

    print(matrix)
    print("after times 10 on every elements:")
    print(matrix[1] * 10)
    
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    after times 10 on every elements:
    [40 50 60 70]
    

    计算矩阵的秩

    m = np.array([[1,2,3], [0,1,2], [0,0,1]])
    np.linalg.matrix_rank(m, tol=None)
    

    output:

    3
    

    索引部分元素

    取一行数据

    print(matrix)
    print("a line of a matrix:")
    print(matrix[1])
    
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    a line of a matrix:
    [4 5 6 7]
    

    取一列数据

    以行的形式返回,得到一个行向量

    print(matrix)
    print("a column of a matrix:")
    print(matrix[:,1])
    
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    a column of a matrix:
    [1 5 9]
    

    以列的形式返回,得到一个列向量

    print(matrix)
    print("a column of a matrix:")
    print(matrix[:,1:2])
    
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    a column of a matrix:
    [[1]
     [5]
     [9]]
    

    类型转换

    astype 方法可以完成类型转换

    >>> import numpy as np
    >>> x = np.array([0.1, 0.2, 1.2])
    >>> x.astype('int')
    array([0, 0, 1])
    

    numpy 转 list

    numpy 变量自带 tolist 方法

    >>> a = np.array([[1, 2], [3, 4]])
    >>> a.tolist()
    [[1, 2], [3, 4]]
    

    参考资料

    《利用python进行数据分析》. https://book.douban.com/subject/25779298/
    Numpy. Quickstart tutorial. https://docs.scipy.org/doc/numpy/user/quickstart.html

  • 相关阅读:
    centos7 安装mysql
    Nginx安装及配置详解
    nginx安装
    JSON Web Token
    优先队列
    小程序遮罩层禁止页面滚动(遮罩层内部可以滚动)
    H5中接入微信支付
    如何使用less预编译
    在methods中使用filter
    根据当前时间获取上一个月的时间
  • 原文地址:https://www.cnblogs.com/fengyubo/p/9092665.html
Copyright © 2011-2022 走看看