跳转到内容

用户:Xyy23330121/Python/科学计算/numpy数学函数

来自维基学院

本页面用于给出 numpy 中数学函数的列表以及具体使用。

以下列表均省略了 numpy 前缀,比如下面的 sin() 函数,在实际使用时,需要加上前缀,比如:

import numpy as np

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

三角函数

[编辑 | 编辑源代码]
numpy 三角函数
函数 说明
sin(x, /[, out, where, casting, order, ...]) 正弦
cos(x, /[, out, where, casting, order, ...]) 余弦
tan(x, /[, out, where, casting, order, ...]) 正切
arcsin(x, /[, out, where, casting, order, ...]) 反正弦,结果取值范围[-pi/2, pi/2]
asin(x, /[, out, where, casting, order, ...]) 反正弦,同上
arccos(x, /[, out, where, casting, order, ...]) 反余弦,结果取值范围[0, pi]
acos(x, /[, out, where, casting, order, ...]) 反余弦,同上
arctan(x, /[, out, where, casting, order, ...]) 反正切,结果取值范围[-pi/2, pi/2]
atan(x, /[, out, where, casting, order, ...]) 反正切,同上
hypot(x1, x2, /[, out, where, casting, ...]) 给定直角边边长,求斜边长
等同于sqrt(x1**2+x2**2)
arctan2(x1, x2, /[, out, where, casting, ...]) 求向量(x2,x1)的倾斜角,结果取值范围[-pi, pi]
atan2(x1, x2, /[, out, where, casting, ...]) 求倾斜角,同上
degrees(x, /[, out, where, casting, order, ...]) 将弧度数转换成对应的角度数
rad2deg(x, /[, out, where, casting, order, ...]) 将弧度数转换成对应的角度数,同上
radians(x, /[, out, where, casting, order, ...]) 将角度数转换成对应的弧度数
deg2rad(x, /[, out, where, casting, order, ...]) 将角度数转换成对应的弧度数,同上
unwrap(p[, discont, axis, period]) 平缓周期性函数自变量的数值

列表列举了 numpy 的三角函数。

unwrap(p, discont=None, axis=-1, *, period=6.283185307179586])

[编辑 | 编辑源代码]

p 中的元素进行运算,返回元素加减几个周期后的结果。

具体来讲,当 p 中后一项和前一项的差的绝对值大于 max(discont, period/2) 时,就会转换后一项。将后一项转换为在距离前一项 max(discont, period/2) 范围内的数字。

通用可选参数

[编辑 | 编辑源代码]

本章介绍大多数 numpy 中三角函数具有的可选参数。这些参数除 out 以外,都必须使用关键词方式传入。

该参数默认为 None,该参数可以输入一个数组。

  • 如果该参数为 None,函数的返回值会存储在新创建的数组里面,并返回新创建的数组。
  • 如果该参数输入了数组,则要求数组的形状与返回值的形状相同,计算的结果会存储在输入的数组中。
x = np.array([1,4],dtype=float)
y = np.array([0,0],dtype=float)

print(np.sqrt(x, out=y)) #输出:[1. 2.]
print(x) #输出:[1. 4.]
print(y) #输出:[1. 2.],np.sqrt 函数将运算结果存储在了 y 中

该参数默认为 True,该参数可以输入一个存储了布尔值的数组。

  • 如果该参数输入了数组,则要求数组的形状与返回值的形状相同。在计算时,仅对 where 中对应位置为 True 的进行计算,并输出计算结果。而对应位置为 False 的元素会不经计算直接输出。
  • 如果该参数为 True,则所有元素都会被用于计算,并输出。
x = np.array([1, 4, 9],dtype=float)
y = np.array([True, False, True])

print(np.sqrt(x, where=y)) #输出:[1. 4. 3.]
#只有对应位置为 True 的 1 和 9 参与了平方根运算,而对应位置为 False 的 4 被直接输出了。

该参数默认为 "same_kind"

该参数决定是否在计算时、自动转换数组中元素的类型。以下是所有选项:

  • "no" 不进行自动转换。
  • "equiv" 只翻转比特顺序。
  • "safe" 只对数字进行转换。比如 int 转换为 float 或 complex,以及 float 转换为 complex。
  • "same_kind" 只可以将类型转换为不同精度的同种类型。比如 int64 转换为 int32。
  • "unsafe" 只要可能进行转换,就会进行转换。比如把 int32 转换为 str 或者把 int64 转换为 int32。转换过程中可能报错。

读者可以通过 can_cast(from_, to, casting) 来确认两个类型在对应规则下是否可以转换。

决定输出时使用的数字类型。

默认为 True

  • 若此项为 True,如果输入为数组的子类型(比如 np.matrix 等),则输出也为对应的子类型。
  • 若此项为 False,则无论输入是什么,输出总是数组。

默认为 "K"

数组元素求和

[编辑 | 编辑源代码]

numpy.sum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)

对数组 a 中,参数 axis 所给出的维度进行求和。

  • axis=None(默认),会对所有维度进行求和,并返回一个数字。
  • axis 为整数,则会对第 axis 个维度进行求和,并按情况返回数字或数组。
  • axis 为整数组成的元组,则会对元组中每个维度进行求和,并按情况返回数字或数组。

该函数的结果等同于 a.sum(axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)

x = np.array([[1,2],[3,4]])
print(x.sum())               #输出:10
print(x.sum(axis = 0))       #输出:[4 6]
print(x.sum(axis = 1))       #输出:[3 7]
print(x.sum(axis = (0, 1)))  #输出:10

https://numpy.org/doc/stable/reference/routines.math.html

https://numpy.org/doc/stable/reference/routines.emath.html