zoukankan      html  css  js  c++  java
  • python3 numpy基本用法归纳总结

    安装numpy : pip install numpy

    numpy数组生成方法总结

    In [4]:
    import numpy as np
    

    #使用列表生成一个一维数组
    data = [1,2,3,4,5]
    x = np.array(data)
    print(x)
    print(x.dtype) #打印数组类型
    print(type(x))

    [1 2 3 4 5]
    int32
    <class 'numpy.ndarray'>
    In [6]:
    import numpy as np

    #使用列表生成一个二维数组
    data = [[1,2], [3,4], [5,6]]
    x = np.array(data)
    print(x)
    print(x.dtype)
    print(x.ndim) #打印数组维度
    print(x.shape) #打印数组各个维度的长度
    print(type(x))

    [[1 2]
    [3 4]
    [5 6]]
    int32
    2
    (3, 2)
    <class 'numpy.ndarray'>
    In [16]:
    import numpy as np

    #使用zeros创建一个长度为4, 元素为0的一维数组
    x = np.zeros(4)
    print(x)
    #创建一个二维数组, 一维长度为2, 二维长度为3, 元素为0的数组
    x = np.zeros((2,3))
    print(x)
    #使用ones创建一个二维数组, 一维长度为2, 二维长度为3, 元素为1的数组
    x = np.ones((2,3))
    print(x)
    #使用empty创建一个二维数组, 一维长度为3, 二维长度为3, 元素为初始化的数组
    y = np.empty((3,3))
    print(y)
    #使用arange生成连续元素
    a = np.arange(5)
    print(a)
    b = np.arange(1,5,2)
    print(b)

    [ 0.  0.  0.  0.]
    [[ 0. 0. 0.]
    [ 0. 0. 0.]]
    [[ 1. 1. 1.]
    [ 1. 1. 1.]]
    [[ 2.97907948e-317 2.69387831e-316 8.66647269e-317]
    [ 2.48185956e-315 2.48185956e-315 2.48185909e-315]
    [ 0.00000000e+000 0.00000000e+000 6.52072824e+091]]
    [0 1 2 3 4]
    [1 3]

    reshape用法:

    In [2]:
    import numpy as np

    #二维数组
    a = np.arange(10).reshape(2,5)
    print(a)
    print(" ")
    #三维数组
    a = np.arange(12).reshape(2,2,3)
    print(a)

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

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

    [[ 6 7 8]
    [ 9 10 11]]]

    基本运算:

    数组的算术运算是按照元素的

    In [9]:
    import numpy as np

    a = np.array([30,40,50,60])
    b = np.arange(4)

    print(a)
    print(b)
    print(" a-b:")
    #俩个数据相减
    c = a - b
    print(c)
    print(" b2:")
    #b数组二次方
    print(b
    2)
    #比较
    print(" a<45:")
    print(a<45)

    [30 40 50 60]
    [0 1 2 3]

    a-b:
    [30 39 48 57]

    b**2:
    [0 1 4 9]

    a<45:
    [ True True False False]

    numpy中的*是按元素计算的, 如果矩阵乘法, 需要调用dot函数

    In [12]:
    import numpy as np

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

    b = np.array([
    [1,1],
    [0,4]
    ])

    #运算
    print("a
    b:")
    print(a*b)

    #dot运算
    print(" dot(a,b):")
    print(np.dot(a,b))

    a*b:
    [[ 1 2]
    [ 0 16]]

    dot(a,b):
    [[ 1 9]
    [ 3 19]]

    axis参数用法:

    In [19]:
    import numpy as np

    a = np.arange(12).reshape(2,2,3)
    print(a)
    print("计算第一维度和:")
    print(a.sum(axis=0))
    print("计算第二维度和:")
    print(a.sum(axis=1))
    print("计算第三维度和:")
    print(a.sum(axis=2))

    #说白了就是说计算第一维度的时候, 把2,3下标值一样的, 第一下标值不一样的加在一起, 重新生成一个数组, 以此类推

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

    [[ 6 7 8]
    [ 9 10 11]]]
    计算第一维度和:
    [[ 6 8 10]
    [12 14 16]]
    计算第二维度和:
    [[ 3 5 7]
    [15 17 19]]
    计算第三维度和:
    [[ 3 12]
    [21 30]]

    In [20]:
    import numpy as np

    a = np.arange(12).reshape(3,4)

    print(a)

    print("找出第一维度的最小值:")
    print(a.min(axis=0))
    print("找出第二维度的最小值:")
    print(a.min(axis=1))

    [[ 0  1  2  3]
    [ 4 5 6 7]
    [ 8 9 10 11]]
    找出第一维度的最小值:
    [0 1 2 3]
    找出第二维度的最小值:
    [0 4 8]
    In [21]:
    import numpy as np

    a = np.arange(12).reshape(3,4)

    print(a)

    print("计算第一维度的累加值:")
    print(a.cumsum(axis=0))
    print("计算第二维度的累加值:")
    print(a.cumsum(axis=1))

    [[ 0  1  2  3]
    [ 4 5 6 7]
    [ 8 9 10 11]]
    计算第一维度的累加值:
    [[ 0 1 2 3]
    [ 4 6 8 10]
    [12 15 18 21]]
    计算第二维度的累加值:
    [[ 0 1 3 6]
    [ 4 9 15 22]
    [ 8 17 27 38]]

    通用函数用法:

    In [22]:
    import numpy as np

    a = np.arange(3)
    print(a)

    print(np.exp2(a)) #输出以2weidi

    [0 1 2]
    [ 1. 2. 4.]

  • 相关阅读:
    悬浮按钮
    C语言学习笔记
    python3之环境搭建以及基础语法
    设计模式之单例模式
    浅谈vuex
    用位运算替代js中的常见操作
    浅析Symbol
    egg.js源码解析之render()
    js的事件循环机制和任务队列
    浅谈js异步
  • 原文地址:https://www.cnblogs.com/jpfss/p/9604494.html
Copyright © 2011-2022 走看看