NumPy 包包含许多算术函数,它们提供各种算术运算所需的所有功能。它包括算术函数和处理复数的函数。下面提到的是最常用的算术函数。

函数描述
add()加法
subtract()减法
multiply()乘法
divide()除法
mod()取模
reciprocal()按元素返回参数的倒数。
power()返回底数的指数次方。
real()返回复数参数的实部。
imag()返回复数参数的虚部。
conjugate()返回元素的共轭复数。
angle()返回复数参数的角度。

让我们详细讨论这些函数:

基本算术运算

可以对给定的值执行基本算术运算数组,按元素使用 add()、subtract()、multiply() 和divide() 函数。使用该函数的语法如下:

语法

numpy.add(x1, x2, out=None)
numpy.subtract(x1, x2, out=None)
numpy.multiply(x1, x2, out=None)
numpy.divide(x1, x2, out=None) 

参数

x1, x2必填。 指定数组。如果 x1.shape != x2.shape,则它们必须可广播为通用形状。
out可选。 指定存储结果的位置。如果提供,它必须具有输入广播到的形状。如果未提供或没有,则返回新分配的数组。

示例:

下面的示例显示add() 函数的用法。

import numpy as np
Arr1 = np.array([[10,20,30], [40,50,60]])
Arr2 = np.array([[5,10,15]])

print("Arr1 为:")
print(Arr1)

print("\nArr2 为:")
print(Arr2)

#这里Arr1和Arr2是可广播的
#添加Arr1和Arr2的元素
print("\nadd(Arr1, Arr2) returns:")
print(np.add(Arr1, Arr2))

#从Arr1中减去Arr2的元素
print("\nsubtract(Arr1, Arr2) returns:")
print(np.subtract(Arr1, Arr2))

#将 Arr1 的元素与 Arr2 相乘
print("\nmultiply(Arr1, Arr2) returns:")
print(np.multiply(Arr1, Arr2))

#将 Arr1 的元素除以 Arr2
print("\ndivide(Arr1, Arr2) returns:")
print(np.divide(Arr1, Arr2)) 

上述代码的输出将是:

Arr1 为:
[[10 20 30]
 [40 50 60]]

Arr2 为:
[[ 5 10 15]]

add(Arr1, Arr2) returns:
[[15 30 45]
 [45 60 75]]

subtract(Arr1, Arr2) returns:
[[ 5 10 15]
 [35 40 45]]

multiply(Arr1, Arr2) returns:
[[ 50 200 450]
 [200 500 900]]

divide(Arr1, Arr2) returns:
[[2. 2. 2.]
 [8. 5. 4.]] 

numpy.reciprocal() 函数

numpy.reciprocal() 函数按元素返回参数的倒数。

语法

numpy.reciprocal(x, out=None, dtype=None) 

参数

x必填。 指定输入数组。
out可选。 指定存储结果的位置。如果提供,它必须具有输入广播到的形状。如果未提供或没有提供,则返回新分配的数组。
dtype可选。 指定返回数组所需的数据类型。

示例:

下面的示例显示了reciprocal() 函数。

import numpy as np
Arr = np.array([[2,4],[5,10]])

print("Arr 为:")
print(Arr)

#Arr 的倒数
print("\nReciprocal array 为:")
print(np.reciprocal(Arr, dtype=float)) 

上述代码的输出将是:

Arr 为:
[[ 2  4]
 [ 5 10]]

Reciprocal array 为:
[[0.5  0.25]
 [0.2  0.1 ]] 

numpy.mod() 函数

numpy.mod() 函数返回除法的逐元素余数。

语法

numpy.mod(x1, x2, out=None) 

参数

x1, x2必填。 指定要除的数组:x1 作为被除数,x2 作为除数。如果 x1.shape != x2.shape,则它们必须可广播为通用形状。
out可选。 指定存储结果的位置。如果提供,它必须具有输入广播到的形状。如果未提供或没有,则返回新分配的数组。

示例:

下面的示例显示 mod() 函数的用法。

import numpy as np
Arr1 = np.array([[10,20,30],[40,50,60]])
Arr2 = np.array([[6,7,9]])

print("Arr1 为:")
print(Arr1)

print("\nArr2 为:")
print(Arr2)

#这里Arr1和Arr2是可广播的
#Arr1 除以 Arr2 的余数
print("\nmod(Arr1, Arr2) returns:")
print(np.mod(Arr1, Arr2)) 

上述代码的输出将是:

Arr1 为:
[[10 20 30]
 [40 50 60]]

Arr2 为:
[[6 7 9]]

mod(Arr1, Arr2) returns:
[[4 6 3]
 [4 1 6]] 

numpy.power() 函数

numpy.power() 函数用于按元素计算第二个数组的第一个数组元素的幂。

语法

numpy.power(x, y, out=None) 

参数

x必填。 指定第一个包含元素的数组(array_like)作为基础。
y必需。 指定包含指数元素的第二个数组(array_like)。如果 x.shape != y.shape,它们必须可广播为通用形状(成为输出的形状)。
out可选。 指定存储结果的位置。如果提供,它必须具有输入广播到的形状。如果未提供或无,则返回新分配的数组。

示例:

下面的示例显示了power()函数的用法。

import numpy as np

base = np.array([5, 6, 7])
exponent = np.array([0, 1, 2])

print("The power of values:")
print(np.power(base, exponent)) 

上述代码的输出将是:

The power of values:
[ 1  6 49] 

处理复数

NumPy 包提供了以下可以在处理复数时使用的函数。

  • real():返回复数参数的实部。
  • imag():返回虚部复数参数的值。
  • conjugate():按元素返回复数共轭。
  • angle():返回复数参数的角度。

语法

numpy.real(z)
numpy.imag(z)
numpy.conjugate(z, out=None)
numpy.angle(z, deg=False) 

参数

z必填。 指定输入数组。
deg可选。 如果为 True,则返回角度,如果为 False,则返回弧度(默认)。
out选修的。 指定存储结果的位置。如果提供,它必须具有输入广播到的形状。如果未提供或没有,则返回新分配的数组。

示例:

下面的示例显示了上面的用法

import numpy as np

Arr = np.array([[1+1j,1+2j],
                [1+3j,1+4j]])

print("Arr 为:")
print(Arr)

#Arr 的实部
print("\nArr 的实部为:")
print(np.real(Arr))

#Arr 的虚部
print("\nArr 的虚部为:")
print(np.imag(Arr))

#Arr 的共轭
print("\nConjuagte of Arr 为:")
print(np.conjugate(Arr))

#计算Arr的角度
print("\nArr 的角度为:")
print(np.angle(Arr, deg=True)) 

上述代码的输出将是:

Arr 为:
[[1.+1.j 1.+2.j]
 [1.+3.j 1.+4.j]]

Arr 的实部为:
[[1. 1.]
 [1. 1.]]

Arr 的虚部为:
[[1. 2.]
 [3. 4.]]

Arr 的共轭是:
[[1.-1.j 1.-2.j]
 [1.-3.j 1.-4.j]]

Arr 的角度为:
[[45.         63.43494882]
 [71.56505118 75.96375653]]