首页 > 其他分享 >17. NumPy算术运算

17. NumPy算术运算

时间:2022-09-26 15:57:32浏览次数:52  
标签:10 17 算术 numpy print 数组 np array NumPy

1. 前言

NumPy 数组的“加减乘除”算术运算,分别对应 add()、subtract()、multiple() 以及 divide() 函数。

注意:做算术运算时,输入数组必须具有相同的形状,或者符合数组的广播规则,才可以执行运算。

下面看一组示例:

import numpy as np
a = np.arange(9, dtype = np.float_).reshape(3,3)
#数组a
print(a)
#数组b
b = np.array([10,10,10])
print(b)
#数组加法运算
print(np.add(a,b))
#数组减法运算
print(np.subtract(a,b))
#数组乘法运算
print(np.multiply(a,b))
#数组除法运算
print(np.divide(a,b))

输出结果:

a数组:
[[ 0. 1. 2.]
[ 3. 4. 5.]
[ 6. 7. 8.]]
b数组:
[10 10 10]
加:
[[ 10. 11. 12.]
[ 13. 14. 15.]
[ 16. 17. 18.]]
减:
[[-10. -9. -8.]
[ -7. -6. -5.]
[ -4. -3. -2.]]

乘:
[[ 0. 10. 20.]
[ 30. 40. 50.]
[ 60. 70. 80.]]
除:
[[ 0. 0.1 0.2]
[ 0.3 0.4 0.5]
[ 0.6 0.7 0.8]]

下面介绍了 NumPy  中其他重要的算术运算函数。

2. numpy.reciprocal()

该函数对数组中的每个元素取倒数,并以数组的形式将它们返回。

当数组元素的数据类型为整型(int)时,对于绝对值小于 1 的元素,返回值为 0,而当数组中包含 0 元素时,返回值将出现 overflow(inf) 溢出提示,示例如下:

import numpy as np
#注意此处有0
a = np.array([0.25, 1.33, 1, 0, 100])
#数组a默认为浮点类型数据
print(a)
#对数组a使用求倒数操作
print (np.reciprocal(a))
#b数组的数据类型为整形int
b = np.array([100], dtype = int)
print(b)
#对数组b使用求倒数操作
print( np.reciprocal(b) )

输出结果:

a数组:
[   0.25    1.33    1.      0.    100.  ]

对a数组求倒数有inf提示:
__main__:1: RuntimeWarning: divide by zero encountered in reciprocal
[ 4.         0.7518797  1.               inf  0.01     ]

b数组:
[100]

对b数组求倒数:
[0]

3. numpy.power()

该函数将 a 数组中的元素作为底数,把 b 数组中与 a 相对应的元素作幂 ,最后以数组形式返回两者的计算结果。示例如下:

import numpy as np
a = np.array([10,100,1000]) 
#a数组
print ('我们的数组是;')
#调用 power 函数
print (np.power(a,2))
b数组
b = np.array([1,2,3]) 
print (b)
调用 power 函数
print (np.power(a,b))

输出结果:

a数组是:
[  10  100 1000]

调用 power 函数:
[    100   10000 1000000]

b数组:
[1 2 3]

调用 power 函数:
[        10      10000 1000000000]

4. numpy.mod()

返回两个数组相对应位置上元素相除后的余数,它与 numpy.remainder() 的作用相同 。

import numpy as np
a = np.array([11,22,33])
b = np.array([3,5,7])
#a与b相应位置的元素做除法
print( np.mod(a,b))
#remainder方法一样
print(np.remainder(a,b)) 

输出结果:

mod:                                          
[1 0 2]
remainder:                            
[1 0 2]

5. 复数数组处理函数

NumPy 提供了诸多处理复数类型数组的函数,主要有以下几个:

  • numpy.real() 返回复数数组的实部;
  • numpy.imag() 返回复数数组的虚部;
  • numpy.conj() 通过更改虚部的符号,从而返回共轭复数;
  • numpy.angle() 返回复数参数的角度,该函数的提供了一个 deg 参数,如果  deg=True,则返回的值会以角度制来表示,否则以以弧度制来表示。


示例如下所示:

import numpy as np
a = np.array([-5.6j, 0.2j, 11. , 1+1j])
print(a)
#real() 
print np.real(a)
#imag() 
print np.imag(a)
#conj()
print np.conj(a)
#angle() 
print np.angle(a)
#angle() 带参数deg
print np.angle(a, deg = True)

输出结果:

a数组:
[ 0.-5.6j 0.+0.2j 11.+0.j 1.+1.j ]

real():
[ 0. 0. 11. 1.]

imag():
[-5.6 0.2 0. 1. ]

conj():
[ 0.+5.6j 0.-0.2j 11.-0.j 1.-1.j ]

angle() :
[-1.57079633 1.57079633 0. 0.78539816]

angle(a,deg=True)
[-90. 90. 0. 45.]

  

标签:10,17,算术,numpy,print,数组,np,array,NumPy
From: https://www.cnblogs.com/jiajunling/p/16731185.html

相关文章

  • 15. NumPy字符串处理函数
    1.前言NumPy提供了许多字符串处理函数,它们被定义在用于处理字符串数组的numpy.char这个类中,这些函数的操作对象是string_或者unicode_字符串数组。如下表所示:Num......
  • 缺少Visual Studio 2017 RC中的LINQ to SQL类(DBML设计器)
     缺少VisualStudio2017RC中的LINQtoSQL类(DBML设计器)|(1r1g.com) 默认情况下,VS2017安装程序在安装时不提供LINQtoSQL工具,我们必须选择并修改.从这里按......
  • 14. NumPy位运算
    1.前言本节重点讲解NumPy的位运算,NumPy中提供了以下按位运算函数:numpy按位运算函数序号函数位运算符描述说明1bitwise_and&计算数组元素之间的按位与运算。......
  • 12. NumPy相关数组操作
    1.前言NumPy中包含了一些处理数组的常用方法,大致可分为以下几类:数组变维操作数组转置操作修改数组维度操作连接与分割数组操作下面分别对它们进行介绍。2.数组......
  • 11. NumPy遍历数组
    1.前言NumPy提供了一个nditer迭代器对象,它可以配合for循环完成对数组元素的遍历。下面看一组示例,使用arange()函数创建一个3*4数组,并使用nditer生成迭代器对......
  • 10. NumPy广播机制
    1.前言NumPy中的广播机制(Broadcast)旨在解决不同形状数组之间的算术运算问题。我们知道,如果进行运算的两个数组形状完全相同,它们直接可以做相应的运算。示例如下:import......
  • 9. NumPy高级索引
    1.前言NumPy与Python的内置序列相比,它提供了更多的索引方式。除了在《Numpy切片和索引》一节用到索引方式外,在NumPy中还可以使用高级索引方式,比如整数数组索引、布......
  • CF1734D
    5668888888888888题面我不想讲了(思路Level1分史莱姆组来吃!每次能量够就吃一个史莱姆组!Level2分组条件:可以吃这个史莱姆组来回血可以吃这个史莱姆组......
  • [CF1734E]Rectangular Congruence
    做题时间:2022.9.23\(【题目描述】\)给定一个质数\(n(2\leqn<350)\)以及\(n\)个整数\(b_1,b_2,...,b_n(0\leqb_i<n)\),构造一个\(n\timesn\)的矩阵,要求满足:\(0......
  • numpy简单使用
    1.安装以及测试简介NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含:一个强大的N维数组对象ndarray广播功能函数整合C/C++/Fortran代码的工具线性代......