• 100天精通Python(数据分析篇)——第51天:numpy函数进阶


    在这里插入图片描述

    每篇前言

    • 🏆🏆作者介绍:Python领域优质创作者、华为云享专家、阿里云专家博主、2021年CSDN博客新星Top6

    • 🔥🔥本文已收录于Python全栈系列专栏《100天精通Python从入门到就业》
    • 📝​📝​此专栏文章是专门针对Python零基础小白所准备的一套完整教学,从0到100的不断进阶深入的学习,各知识点环环相扣
    • 🎉🎉订阅专栏后续可以阅读Python从入门到就业100篇文章还可私聊进两百人Python全栈交流群(手把手教学,问题解答); 进群可领取80GPython全栈教程视频 + 300本计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
    • 🚀🚀加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!

    在这里插入图片描述
    在这里插入图片描述

    1. 字符串函数

    是用于对dtype为numpy.string_或numpy.unicode_的数组执行向量化字符串操作基于Python内置库中的标准字符串函数在字符数组类(numpy.char)中定义

    1. add():对两个数组的元素进行字符串连接

    >>> import numpy as np
    >>>
    >>> print(np.char.add(['hello'],['python']))
    ['hellopython']
    >>> print(np.char.add(['hello','python'],['yyds']))
    ['helloyyds' 'pythonyyds']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2. multiply():返回按元素多重连接后的字符串

    >>> import numpy as np
    >>>
    >>> print(np.char.multiply(['hello'], 3))
    ['hellohellohello']
    
    • 1
    • 2
    • 3
    • 4

    3. center():将字符串居中,,并使用指定字符在左侧和右 侧进行填充

    >>> import numpy as np
    >>>
    >>> print(np.char.center(['hello', 'python'], 15, fillchar='-'))
    ['-----hello-----' '-----python----']
    
    • 1
    • 2
    • 3
    • 4

    4. capitalize():将字符串第一个字母转换为大写

    >>> import numpy as np
    >>>
    >>> print(np.char.capitalize(['hello', 'python']))
    ['Hello' 'Python']
    
    • 1
    • 2
    • 3
    • 4

    5. title():将字符串的每个单词的第一个字 母转换为大写

    >>> import numpy as np
    >>>
    >>> print(np.char.title(['hello python']))
    ['Hello Python']
    
    • 1
    • 2
    • 3
    • 4

    6. lower():数组元素转换为小写

    >>> import numpy as np
    >>>
    >>> print(np.char.lower(['Hello Python']))
    ['hello python']
    
    • 1
    • 2
    • 3
    • 4

    7. upper():数组元素转换为大写

    >>> import numpy as np
    >>>
    >>> print(np.char.upper(['Hello Python']))
    ['HELLO PYTHON']
    
    • 1
    • 2
    • 3
    • 4

    8. split():指定分隔符对字符串进行分割,并返回数组列表

    >>> import numpy as np
    >>>
    >>> print(np.char.split(['Hello Python'], sep=' '))
    [list(['Hello', 'Python'])]
    
    • 1
    • 2
    • 3
    • 4

    9. splitlines():返回元素中的行列表,以换行符分割

    >>> import numpy as np
    >>>
    >>> print(np.char.splitlines(['Hello\nPython\nyyds']))
    [list(['Hello', 'Python', 'yyds'])]
    
    • 1
    • 2
    • 3
    • 4

    10. strip():移除元素开头或者结尾处的特定字符

    >>> import numpy as np
    >>>
    >>> print(np.char.strip(['--Hello--', '--python--'], '-'))
    ['Hello' 'python']
    
    • 1
    • 2
    • 3
    • 4

    11. join():通过指定分隔符来连接数组中的元素

    >>> import numpy as np
    >>>
    >>> print(np.char.join("*", ['Hello', 'python']))
    ['H*e*l*l*o' 'p*y*t*h*o*n']
    >>> print(np.char.join(["*", "-"], ['Hello--', 'python']))
    ['H*e*l*l*o*-*-' 'p-y-t-h-o-n']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    12. replace():使用新字符串替换字符串中的所有子字符串

    >>> import numpy as np
    >>>
    >>> print(np.char.replace(['Hello', 'python'], "python", "java"))
    ['Hello' 'java']
    
    • 1
    • 2
    • 3
    • 4

    13. encode():编码,数组元素依次调用str.encode

    >>> import numpy as np
    >>>
    >>> print(np.char.encode(['Hello', 'python'], "utf-8"))
    [b'Hello' b'python']
    
    • 1
    • 2
    • 3
    • 4

    14. decode():解码,数组元素依次调用str.decode

    >>> import numpy as np
    >>>
    >>> a = np.char.encode(['Hello', 'python'], "utf-8")
    >>> print(np.char.decode(a, "utf-8"))
    ['Hello' 'python']
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2. 数学函数

    1. 标准三角函数sin()、cos()、tan()

    >>> import numpy as np
    >>>
    >>> a = np.array([0, 30, 45, 60, 90, 180])
    >>> print('不同角度的正弦值: ')
    不同角度的正弦值:
    >>> print(np.sin(a * np.pi / 180))
    [0.00000000e+00 5.00000000e-01 7.07106781e-01 8.66025404e-01
     1.00000000e+00 1.22464680e-16]
    >>>
    >>> print('数组中角度的余弦值: ')
    数组中角度的余弦值:
    >>> print(np.cos(a * np.pi / 180))
    [ 1.00000000e+00  8.66025404e-01  7.07106781e-01  5.00000000e-01
      6.12323400e-17 -1.00000000e+00]
    >>>
    >>> print('数组中角度的正切值: ')
    数组中角度的正切值:
    >>> print(np.tan(a * np.pi / 180))
    [ 0.00000000e+00  5.77350269e-01  1.00000000e+00  1.73205081e+00
      1.63312394e+16 -1.22464680e-16]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    2. 反三角函数arcsin()、arccos()、arctan()

    >>> a = np.array([0, 30, 45, 60, 90, 180])
    >>> print('含有正弦值的数组: ')
    含有正弦值的数组:
    >>> sin = np.sin(a * np.pi / 180)
    >>> print(sin)
    [0.00000000e+00 5.00000000e-01 7.07106781e-01 8.66025404e-01
     1.00000000e+00 1.22464680e-16]
    >>>
    >>> print('计算角度的反正弦,返回值以弧度为单位: ')
    计算角度的反正弦,返回值以弧度为单位:
    >>> inv = np.arcsin(sin)
    >>> print(inv)
    [0.00000000e+00 5.23598776e-01 7.85398163e-01 1.04719755e+00
     1.57079633e+00 1.22464680e-16]
    >>>
    >>> print('通过转化为角度制来检查结果: ')
    通过转化为角度制来检查结果:
    >>> print(np.degrees(inv))
    [0.0000000e+00 3.0000000e+01 4.5000000e+01 6.0000000e+01 9.0000000e+01
     7.0167093e-15]
    >>>
    >>> print('arccos和arctan 函数行为类似: ')
    arccos和arctan 函数行为类似:
    >>> cos = np.cos(a * np.pi / 180)
    >>> print(cos)
    [ 1.00000000e+00  8.66025404e-01  7.07106781e-01  5.00000000e-01
      6.12323400e-17 -1.00000000e+00]
    >>>
    >>> print('反余弦: ')
    反余弦:
    >>> inv = np.arccos(cos)
    >>> print(inv)
    [0.         0.52359878 0.78539816 1.04719755 1.57079633 3.14159265]
    >>>
    >>> print('角度制单位: ')
    角度制单位:
    >>> print(np.degrees(inv))
    [  0.  30.  45.  60.  90. 180.]
    >>>
    >>> print('tan函数: ')
    tan函数:
    >>> tan = np.tan(a * np.pi / 180)
    >>> print(tan)
    [ 0.00000000e+00  5.77350269e-01  1.00000000e+00  1.73205081e+00
      1.63312394e+16 -1.22464680e-16]
    >>>
    >>> print('反正切:')
    反正切:
    >>> inv = np.arctan(tan)
    >>> print(inv)
    [ 0.00000000e+00  5.23598776e-01  7.85398163e-01  1.04719755e+00
      1.57079633e+00 -1.22464680e-16]
    >>>
    >>> print('角度制单位: ')
    角度制单位:
    >>> print(np.degrees(inv))
    [ 0.0000000e+00  3.0000000e+01  4.5000000e+01  6.0000000e+01
      9.0000000e+01 -7.0167093e-15]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58

    3. numpy.around(a, decimals=0):返回指定数字的四舍五入值

    参数说明

    • a:数组
    • decimals:舍入的小数位数。默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置
    >>> import numpy as np
    >>>
    >>> a = np.array([1.0, 2.22, 3.456, 4.4444, 5.5555, 12345])
    >>> print(a)
    [1.0000e+00 2.2200e+00 3.4560e+00 4.4444e+00 5.5555e+00 1.2345e+04]
    >>>
    >>> print(np.around(a))
    [1.0000e+00 2.0000e+00 3.0000e+00 4.0000e+00 6.0000e+00 1.2345e+04]
    >>> print(np.around(a, decimals=1))
    [1.0000e+00 2.2000e+00 3.5000e+00 4.4000e+00 5.6000e+00 1.2345e+04]
    >>> print(np.around(a, decimals=-1))
    [0.000e+00 0.000e+00 0.000e+00 0.000e+00 1.000e+01 1.234e+04]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4. floor():向下取整,反回不大于输入参数的最大整数。即标量x 的下限是最大的整数i,使得i <=X。注意在Python中, 向下取整总是从0舍入

    >>> import numpy as np
    >>>
    >>> a = np.array([1.0, 2.2, 3.4, 4.4, 5.5, 12345])
    >>> print(a)
    [1.0000e+00 2.2000e+00 3.4000e+00 4.4000e+00 5.5000e+00 1.2345e+04]
    >>>
    >>> print(np.floor(a))
    [1.0000e+00 2.0000e+00 3.0000e+00 4.0000e+00 5.0000e+00 1.2345e+04]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    5. ceil():向.上取整,返回输入值的上限,即,标量x的上限是最小的整数i,使得i>= x

    >>> import numpy as np
    >>>
    >>> a = np.array([1.0, 2.2, 3.4, 4.4, 5.5, 12345])
    >>> print(a)
    [1.0000e+00 2.2000e+00 3.4000e+00 4.4000e+00 5.5000e+00 1.2345e+04]
    >>>
    >>> print(np.ceil(a))
    [1.0000e+00 3.0000e+00 4.0000e+00 5.0000e+00 6.0000e+00 1.2345e+04]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3. 算术函数

    1. 加减乘除:add(),subtract(),multiply(),divide()

    >>> import numpy as np
    >>>
    >>> x = np.arange(9, dtype="f").reshape(3, 3)
    >>> print("x数组: ")
    x数组:
    >>> print(x)
    [[0. 1. 2.]
     [3. 4. 5.]
     [6. 7. 8.]]
    >>>
    >>> y = np.array([10, 10, 10])
    >>> print("y数组: ")
    y数组:
    >>> print(y)
    [10 10 10]
    >>>
    >>> print("两个数组相加")
    两个数组相加
    >>> print(np.add(x, y))
    [[10. 11. 12.]
     [13. 14. 15.]
     [16. 17. 18.]]
    >>>
    >>> print("两个数组相减")
    两个数组相减
    >>> print(np.subtract(x, y))
    [[-10.  -9.  -8.]
     [ -7.  -6.  -5.]
     [ -4.  -3.  -2.]]
    >>>
    >>> print("两个数组相乘")
    两个数组相乘
    >>> print(np.multiply(x, y))
    [[ 0. 10. 20.]
     [30. 40. 50.]
     [60. 70. 80.]]
    >>>
    >>> print("两个数组相除")
    两个数组相除
    >>> print(np.divide(x, y))
    [[0.  0.1 0.2]
     [0.3 0.4 0.5]
     [0.6 0.7 0.8]]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    2. reciprocal():返回参数逐个元素的倒数

    >>> import numpy as np
    >>>
    >>> x = np.arange(10)
    >>> print(x)
    [0 1 2 3 4 5 6 7 8 9]
    >>> print(np.reciprocal(x))
    [-2147483648           1           0           0           0           0
               0           0           0           0]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3. power():将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂

    >>> import numpy as np
    >>>
    >>> a = np.array([1, 2, 3])
    >>> b = np.array([10, 10, 10])
    >>>
    >>> print(np.power(a, b))
    [    1  1024 59049]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4. mod()、remainder():计算输入数组中相应元素的相除后的余数

    >>> import numpy as np
    >>>
    >>> a = np.array([10, 10, 10])
    >>> b = np.array([1, 2, 3])
    >>>
    >>> print(np.mod(a, b))
    [0 0 1]
    >>> print(np.remainder(a, b))
    [0 0 1]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4. 统计函数

    1. amax()、amin():计算数组中的元素沿指定轴的最大值、最小值

    >>> import numpy as np
    >>>
    >>> a = np.arange(12).reshape(3, 4)
    >>> print(a)
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    >>>
    >>> print(np.amax(a, 0))
    [ 8  9 10 11]
    >>> print(np.amax(a, 1))
    [ 3  7 11]
    >>>
    >>> print(np.amin(a, 0))
    [0 1 2 3]
    >>> print(np.amin(a, 1))
    [0 4 8]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    2. ptp():计算数组中元素最大值与最小值的差(最大值-最小值)

    >>> import numpy as np
    >>>
    >>> a = np.arange(12).reshape(3, 4)
    >>> print(a)
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    >>>
    >>> print(np.ptp(a, 0))
    [8 8 8 8]
    >>> print(np.ptp(a, 1))
    [3 3 3]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3. numpy . percentile(a, q,axis):百分位数是统计中使用的度量、表示小于这个值的观察值的百分比

    参数说明

    • a:输入数组
    • p:要计算的百分位数,在0~ 100之间(第p个百分位数是这样一个值, 它使得至少有p%的数据项小于或等于这个值,且至少有(100-p)%的数据项大于或等于这个值)
    • axis:沿着它计算百分位数的轴
    >>> import numpy as np
    >>>
    >>> a = np.arange(12).reshape(3, 4)
    >>> print(a)
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    >>>
    >>> print(np.percentile(a, 50))
    5.5
    >>> print(np.percentile(a, 50, axis=0))
    [4. 5. 6. 7.]
    >>> print(np.percentile(a, 50, axis=1))
    [1.5 5.5 9.5]
    >>> print(np.percentile(a, 50, axis=1, keepdims=True))
    [[1.5]
     [5.5]
     [9.5]]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    4. sum():求和

    >>> import numpy as np
    >>>
    >>> t = np.arange(1,11).reshape(2,5)
    >>> t
    array([[ 1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10]])
    >>> np.sum(t)
    55
    >>> np.sum(t,axis=0) # axis=0表示每列相加的结果
    array([ 7,  9, 11, 13, 15])
    >>> np.sum(t,axis=1) # axis=1表示每行相加的结果
    array([15, 40])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    5. mean() :均值,受离群点的影响较大

    >>> import numpy as np
    >>>
    >>> t = np.arange(1,11).reshape(2,5)
    >>> t
    array([[ 1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10]])
    >>> t.mean(axis=None)
    5.5
    >>> t.mean(axis=0)
    array([3.5, 4.5, 5.5, 6.5, 7.5])
    >>> t.mean(axis=1)
    array([3., 8.])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    6. median() :中值

    >>> import numpy as np
    >>>
    >>> t = np.arange(1,11).reshape(2,5)
    >>> t
    array([[ 1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10]])
    >>> np.median(t,axis=None)
    5.5
    >>> np.median(t,axis=0)
    array([3.5, 4.5, 5.5, 6.5, 7.5])
    >>> np.median(t,axis=1)
    array([3., 8.])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    7. std() :标准差是一组数据平均值分散程度的一种度量。一个较大的标准差,代表大部分数值和其平均值之间差异较大;一个较小的标准差,代表这些数值较接近平均值反映出数据的波动稳定情况,越大表示波动越大,约不稳定
    在这里插入图片描述

    >>> import numpy as np
    >>>
    >>> t = np.arange(1,11).reshape(2,5)
    >>> t
    array([[ 1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10]])
    >>> t.std(axis=None)
    2.8722813232690143
    >>> t.std(axis=0)
    array([2.5, 2.5, 2.5, 2.5, 2.5])
    >>> t.std(axis=1)
    array([1.41421356, 1.41421356])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    5. 排序函数

    1. sort(a, axis, kind, order):返回输入数组的排序副本

    参数说明

    • a:要排序的数组
    • axis:沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序,axis=0按列排序,axis=1 按行排序
      kind:排序算法,默认为’quicksort’
    • order:如果数组包含字段,则是要排序的字段
    >>> import numpy as np
    >>>
    >>> x = np.random.randint(1, 11, 12).reshape(3, 4)
    >>> print("x数组: ")
    x数组:
    >>> print(x)
    [[ 6  1  7  6]
     [10  4  1  9]
     [ 2  8  3  9]]
    >>>
    >>> print("调用sort()函数后: ")
    调用sort()函数后:
    >>> print(np.sort(x))
    [[ 1  6  6  7]
     [ 1  4  9 10]
     [ 2  3  8  9]]
    >>>
    >>> print("按列排序: ")
    按列排序:
    >>> print(np.sort(x, axis=0))
    [[ 2  1  1  6]
     [ 6  4  3  9]
     [10  8  7  9]]
    >>>
    >>> # 在sort函数中排序字段
    >>> dt = np.dtype([('name', 'S10'), ('age', int)])
    >>> y = np.array([("xiaoming", 10), ("xiaoming", 20), ("xiaohong", 30), ("xiaobai", 40)], dtype=dt)
    >>> print("y数组: ")
    y数组:
    >>> print(y)
    [(b'xiaoming', 10) (b'xiaoming', 20) (b'xiaohong', 30) (b'xiaobai', 40)]
    >>>
    >>> print("按age排序:")
    按age排序:
    >>> print(np.sort(y, order="age"))
    [(b'xiaoming', 10) (b'xiaoming', 20) (b'xiaohong', 30) (b'xiaobai', 40)]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    2. argbort():对输入数组沿给定轴执行间接排序,并使用指定排序类型返回数据的索引数组。这个索引数组用于构造排序后的数组

    >>> import numpy as np
    >>>
    >>> x = np.array([3,1,2])
    >>> print("x数组: ")
    x数组:
    >>> print(x)
    [3 1 2]
    >>>
    >>> print("使用argsort()函数排序: ")
    使用argsort()函数排序:
    >>> i = np.argsort(x)
    >>> print(i)
    [1 2 0]
    >>>
    >>> print("一排序后的顺序重构原数组: ")
    一排序后的顺序重构原数组:
    >>> print(x[i])
    [1 2 3]
    >>>
    >>> print("使用循环重构原数组: ")
    使用循环重构原数组:
    >>> for index in i:
    ...     print(x[index])
    ...
    1
    2
    3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    3. lexsort():使用键序列执行间接排序。键可以看作是电子表格中的一列。该函数返回一个索引数组,使用它可以获得排序数据。注意:最后一个键恰好是sort的主键

    >>> import numpy as np
    >>>
    >>> nm = ('raju', 'anil', 'ravi', ' amar')
    >>> dv = ('f.y.', 's.y.', 's.y.', 'f.y.')
    >>> print('调用lexsort() 函数: ')
    调用lexsort() 函数:
    >>> ind = np.lexsort((dv, nm))
    >>> print(ind)
    [3 1 0 2]
    >>>
    >>> print('使用这个索引来获取排序后的数据: ')
    使用这个索引来获取排序后的数据:
    >>> print([nm[i] + "," + dv[i] for i in ind])
    [' amar,f.y.', 'anil,s.y.', 'raju,f.y.', 'ravi,s.y.']
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4. msort(a):数组按第一个轴排序,返回排序后的数组副本。说明: np.msort(a) 相等于np.sort(a, axis=0)

    5. sort_ complex(a):对复数按照先实部后虚部的顺序进行排序

    >>> import numpy as np
    >>>
    >>> x = np.array([100, 20, 30, 10, 50])
    >>> print("x数组: ")
    x数组:
    >>> print(x)
    [100  20  30  10  50]
    >>>
    >>> print(" x使用sort_ .complex( )函数排序: ")
     x使用sort_ .complex( )函数排序:
    >>> print(np.sort_complex(x))
    [ 10.+0.j  20.+0.j  30.+0.j  50.+0.j 100.+0.j]
    >>>
    >>> y = np.array([1 + 2j, 2 - 1j, 3 - 2j, 3 - 3j, 3 + 5j])
    >>> print("y数组: ")
    y数组:
    >>> print(y)
    [1.+2.j 2.-1.j 3.-2.j 3.-3.j 3.+5.j]
    >>>
    >>> print("y使用sort_ complex( )函数排序: ")
    y使用sort_ complex( )函数排序:
    >>> print(np.sort_complex(y))
    [1.+2.j 2.-1.j 3.-3.j 3.-2.j 3.+5.j]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    6. partition(a, kth[, axis, kind, order]):指定已个数,对数组进行分区

    >>> import numpy as np
    >>>
    >>> x = np.array([3, 4, 2, 1])
    >>> print("x数组: ")
    x数组:
    >>> print(x)
    [3 4 2 1]
    >>>
    >>> # 将数组x中所有元素(包括重复元素)从小到大排列,3表示的是排序数组索引为3的数字,比该数字小的排在该数字前面,比该数字 大的排在该数字的后面
    >>> print(np.partition(x, 3))
    [2 1 3 4]
    >>>
    >>> # 小于1的在前面,大于3的在后面,1和3之间的在中间
    >>> print(np.partition(x, (1, 3)))
    [1 2 3 4]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    7. argpartition(a, kth[, axis, kind, order]):可以通过关键字kind指定算法沿着指定轴对数组进行分区

    >>> import numpy as np
    >>>
    >>> y = np.array([46, 57, 23, 39, 1, 10, 0, 120])
    >>> print("y数组: ")
    y数组:
    >>> print(y)
    [ 46  57  23  39   1  10   0 120]
    >>>
    >>> print("找到数组的第3小(index=2) 的值和第2大(index=-2) 的值:")
    找到数组的第3(index=2) 的值和第2(index=-2) 的值:
    >>> print(y[np.argpartition(y, 2)[2]])
    10
    >>> print(y[np.argpartition(y, -2)[-2]])
    57
    >>> print("同时找到第3和第4小的值:")
    同时找到第3和第4小的值:
    >>> # 用[2,3]同时将第3和第4小的排序好,然后可以分别通过下标[2]和[3]取得
    >>> print(y[np.argpartition(y, [2, 3])[2]])
    10
    >>> print(y[np.argpartition(y, [2, 3])[3]])
    23
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    6. 搜索函数

    1. max() :最大值

    >>> import numpy as np
    >>>
    >>> t = np.arange(1,11).reshape(2,5)
    >>> t
    array([[ 1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10]])
    >>> t.max(axis=0)
    array([ 6,  7,  8,  9, 10])
    >>> t.max(axis=1)
    array([ 5, 10])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2. min(axis=None):最小值

    >>> import numpy as np
    >>>
    >>> t = np.arange(1,11).reshape(2,5)
    >>> t
    array([[ 1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10]])
    >>> t.min(axis=None)
    1
    >>> t.min(axis=0)
    array([1, 2, 3, 4, 5])
    >>> t.min(axis=1)
    array([1, 6])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3. argmax():沿给定轴返回最大元素的索引

    >>> import numpy as np
    >>>
    >>> t = np.arange(1,11).reshape(2,5)
    >>> t
    array([[ 1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10]])
    >>>
    >>> t.argmax(axis=None)
    9
    >>>
    >>> t.argmax(axis=0)
    array([1, 1, 1, 1, 1], dtype=int64)
    >>>
    >>> t.argmax(axis=1)
    array([4, 4], dtype=int64)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    4. argmin():沿给定轴返回最小元素的索引

    >>> import numpy as np
    >>>
    >>> t = np.arange(1,11).reshape(2,5)
    >>> t
    array([[ 1,  2,  3,  4,  5],
           [ 6,  7,  8,  9, 10]])
    >>>
    >>> t.argmin(axis=None)
    0
    >>>
    >>> t.argmin(axis=0)
    array([0, 0, 0, 0, 0], dtype=int64)
    >>>
    >>> t.argmin(axis=1)
    array([0, 0], dtype=int64)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    5. nonzero():返回输入数组中非零元素的索引

    >>> import numpy as np
    >>>
    >>> x = np.array([[30, 40, 0], [0, 20, 10], [50, 0, 60]])
    >>> print("x数组: ")
    x数组:
    >>> print(x)
    [[30 40  0]
     [ 0 20 10]
     [50  0 60]]
    >>>
    >>> print(np.nonzero(x))
    (array([0, 0, 1, 1, 2, 2], dtype=int64), array([0, 1, 1, 2, 0, 2], dtype=int64))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    6. where():返回输入数组中满足给定条件的元素的索引

    >>> import numpy as np
    >>>
    >>> x = np.array([[30, 40, 0], [0, 20, 10], [50, 0, 60]])
    >>> print("x数组: ")
    x数组:
    >>> print(x)
    [[30 40  0]
     [ 0 20 10]
     [50  0 60]]
    >>>
    >>> print("大于30的元素的索引: ")
    大于30的元素的索引:
    >>> y = np.where(x > 30)
    >>> print(y)
    (array([0, 2, 2], dtype=int64), array([1, 0, 2], dtype=int64))
    >>>
    >>> print("使用这些索引来获取满足条件的元素: ")
    使用这些索引来获取满足条件的元素:
    >>> print(x[y])
    [40 50 60]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    7. extract():根据某个条件从数组中抽取元素,返回满条件的元素

    >>> import numpy as np
    >>>
    >>> x = np.array([[31, 40, 4], [2, 23, 10], [50, 3, 60]])
    >>> print(" x数组: ")
     x数组:
    >>> print(x)
    [[31 40  4]
     [ 2 23 10]
     [50  3 60]]
    >>>
    >>> # 定义条件,选择偶数元素
    >>> condition = np.mod(x, 2) == 0
    >>> print("按元素的条件值: ")
    按元素的条件值:
    >>> print(condition)
    [[False  True  True]
     [ True False  True]
     [ True False  True]]
    >>>
    >>> print("使用条件提取元素: ")
    使用条件提取元素:
    >>> print(np.extract(condition, x))
    [40  4  2 10 50 60]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  • 相关阅读:
    Linux中Tomcat发布war包后无法正常访问非静态资源
    基于Go编写一个可视化Navicat本地密码解析器
    java计算机毕业设计教师资格考试辅导系统源码+mysql数据库+系统+lw文档+部署
    poi动态填充word内容
    C++:重定义:符号重定义:变量重定义
    软考高级 2022年11月信息系统项目管理师
    鸿运主动安全云平台任意文件下载漏洞
    R语言进行数据分组聚合统计变换(Aggregating transforms)、计算dataframe数据的分组最小值(min)
    山东省专精特新|山东省“专精特新”条件|专业申报认定补贴
    系统篇: linux 下实现 U 盘自动挂载
  • 原文地址:https://blog.csdn.net/yuan2019035055/article/details/126332513