• 数据挖掘技术-掌握ufunc函数


    掌握ufunc函数

    ufunc函数是针对数组进行操作的函数,常用的ufunc函数运算有四则运算、比较运算和逻辑运算等。

    数组的四则运算,如代码 45所示。

    代码 45 数组的四则运算

    In[16]:

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

    y = np.array([4,5,6])

    print('数组相加结果为:',x + y)  #数组相加

    Out[16]:

    数组相加结果为: [5 7 9]

    In[17]:

    print('数组相减结果为:',x - y)  #数组相减

    Out[17]:

    数组相减结果为: [-3 -3 -3]

    In[18]:

    print('数组相乘结果为:',x * y)  #数组相乘

    Out[18]:

    数组相乘结果为: [ 4 10 18]

    In[19]:

    print('数组相除结果为:',x / y)  #数组相除

    Out[19]:

    数组相除结果为: [ 0.25  0.4   0.5 ]

    In[20]:

    print('数组幂运算结果为:',x ** y)  #数组幂运算

    Out[20]:

    数组幂运算结果为: [  1  32 729]

    比较运算返回的结果是一个布尔数组,每个元素为每个数组对应元素的比较结果,如代码 46所示。

    代码 46 数组的比较运算

    In[21]:

    x = np.array([1,3,5])

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

    print('数组比较结果为:',x < y)

    Out[21]:

    数组比较结果为: [ True False False]

    In[22]:

    print('数组比较结果为:',x > y)

    Out[22]:

    数组比较结果为: [False False  True]

    In[23]:

    print('数组比较结果为:',x == y)

    Out[24]:

    数组比较结果为: [False  True False]

    In[24]:

    print('数组比较结果为:',x >= y)

    Out[24]:

    数组比较结果为: [False  True  True]

    In[25]:

    print('数组比较结果为:',x <= y)

    Out[25]:

    数组比较结果为: [ True  True False]

    In[26]:

    print('数组比较结果为:',x != y)

    Out[26]:

    数组比较结果为: [ True False  True]

    在NumPy逻辑运算中,np.any函数表示逻辑“or”,np.all函数表示逻辑“and”,如代码 47所示。

    代码 47 数组的逻辑运算

    In[27]:

    print('数组逻辑运算结果为:',np.all(x == y))  # np.all()表示逻辑and

    Out[27]:

    数组逻辑运算结果为: False

    In[28]:

    print('数组逻辑运算结果为:',np.any(x == y))  # np.any()表示逻辑or

    Out[28]:

    数组逻辑运算结果为: True

        1. ufunc函数的广播机制

    以一维数组和二维数组举例说明广播的运算机制。

    一维数组的广播机制,如代码 48所示。

    代码 48 一维数组的广播机制

    In[29]:

    arr1 = np.array([[0,0,0],[1,1,1],[2,2,2],[3,3,3]])

    print('创建的数组1为:',arr1)

    Out[29]:

    创建的数组1为: [[0 0 0]

     [1 1 1]

     [2 2 2]

     [3 3 3]]

    In[30]:

    print('数组1的shape为:',arr1.shape)

    Out[30]:

    数组1的shape为: (4, 3)

    In[31]:

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

    print('创建的数组2为:',arr2)

    Out[31]:

    创建的数组2为: [1 2 3]

    In[32]:

    print('数组2的shape为:',arr2.shape)

    Out[32]:

    数组2的shape为: (3,)

    In[33]:

    print('数组相加结果为:',arr1 + arr2)

    Out[33]:

    数组相加结果为: [[1 2 3]

     [2 3 4]

     [3 4 5]

     [4 5 6]]

    二维数组的广播机制,如代码 49所示。

    代码 49 二维数组的广播机制

    In[34]:

    arr1 = np.array([[0,0,0],[1,1,1],[2,2,2],[3,3,3]])

    print('创建的数组1为:',arr1)

    Out[34]:

    创建的数组1为: [[0 0 0]

     [1 1 1]

     [2 2 2]

     [3 3 3]]

    In[35]:

    print('数组1的shape为:',arr1.shape)

    Out[35]:

    数组1的shape为: (4, 3)

    In[36]:

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

    print('创建的数组2为:',arr2)

    Out[36]:

    创建的数组2为: [[1]

     [2]

     [3]

     [4]]

    In[37]:

    print('数组2的shape为:',arr2.shape)

    Out[37]:

    数组2的shape为: (4, 1)

    In[38]:

    print('数组相加结果为:',arr1 + arr2)

    Out[38]:

    数组相加结果为: [[1 1 1]

     [3 3 3]

     [5 5 5]

     [7 7 7]]

  • 相关阅读:
    C++人生重开模拟器
    uni-app--》基于小程序开发的电商平台项目实战(一)
    html结构
    体育竞技分析
    蓝牙智能音箱采用哪些音频功放芯片
    计算机毕业设计Python+Django的个人博客系统(源码+系统+mysql数据库+Lw文档)
    图技术赋能民生银行创新转型
    MySQL根据备注查询表、字段
    【已解决】Vue3+Element-plus中icon图标不显示的问题
    Java学习笔记:SQLite数据库
  • 原文地址:https://blog.csdn.net/u011062044/article/details/127569643