mirror of
https://github.com/apachecn/ailearning.git
synced 2026-02-08 12:55:26 +08:00
323 lines
2.9 KiB
Markdown
323 lines
2.9 KiB
Markdown
# 一般函数
|
||
|
||
In [1]:
|
||
|
||
```py
|
||
import numpy as np
|
||
|
||
```
|
||
|
||
## 三角函数
|
||
|
||
```py
|
||
sin(x)
|
||
cos(x)
|
||
tan(x)
|
||
sinh(x)
|
||
conh(x)
|
||
tanh(x)
|
||
arccos(x)
|
||
arctan(x)
|
||
arcsin(x)
|
||
arccosh(x)
|
||
arctanh(x)
|
||
arcsinh(x)
|
||
arctan2(x,y)
|
||
```
|
||
|
||
`arctan2(x,y)` 返回 `arctan(x/y)` 。
|
||
|
||
## 向量操作
|
||
|
||
```py
|
||
dot(x,y)
|
||
inner(x,y)
|
||
cross(x,y)
|
||
vdot(x,y)
|
||
outer(x,y)
|
||
kron(x,y)
|
||
tensordot(x,y[,axis])
|
||
```
|
||
|
||
## 其他操作
|
||
|
||
```py
|
||
exp(x)
|
||
log(x)
|
||
log10(x)
|
||
sqrt(x)
|
||
absolute(x)
|
||
conjugate(x)
|
||
negative(x)
|
||
ceil(x)
|
||
floor(x)
|
||
fabs(x)
|
||
hypot(x)
|
||
fmod(x)
|
||
maximum(x,y)
|
||
minimum(x,y)
|
||
```
|
||
|
||
`hypot` 返回对应点 `(x,y)` 到原点的距离。
|
||
|
||
In [2]:
|
||
|
||
```py
|
||
x = np.array([1,2,3])
|
||
y = np.array([4,5,6])
|
||
np.hypot(x,y)
|
||
|
||
```
|
||
|
||
Out[2]:
|
||
|
||
```py
|
||
array([ 4.12310563, 5.38516481, 6.70820393])
|
||
```
|
||
|
||
## 类型处理
|
||
|
||
```py
|
||
iscomplexobj
|
||
iscomplex
|
||
isrealobj
|
||
isreal
|
||
imag
|
||
real
|
||
real_if_close
|
||
isscalar
|
||
isneginf
|
||
isposinf
|
||
isinf
|
||
isfinite
|
||
isnan
|
||
nan_to_num
|
||
common_type
|
||
typename
|
||
```
|
||
|
||
正无穷:
|
||
|
||
In [3]:
|
||
|
||
```py
|
||
np.inf
|
||
|
||
```
|
||
|
||
Out[3]:
|
||
|
||
```py
|
||
inf
|
||
```
|
||
|
||
负无穷:
|
||
|
||
In [4]:
|
||
|
||
```py
|
||
-np.inf
|
||
|
||
```
|
||
|
||
Out[4]:
|
||
|
||
```py
|
||
-inf
|
||
```
|
||
|
||
非法值(Not a number):
|
||
|
||
In [5]:
|
||
|
||
```py
|
||
np.nan
|
||
|
||
```
|
||
|
||
Out[5]:
|
||
|
||
```py
|
||
nan
|
||
```
|
||
|
||
检查是否为无穷:
|
||
|
||
In [6]:
|
||
|
||
```py
|
||
np.isinf(1.0)
|
||
|
||
```
|
||
|
||
Out[6]:
|
||
|
||
```py
|
||
False
|
||
```
|
||
|
||
In [7]:
|
||
|
||
```py
|
||
np.isinf(np.inf)
|
||
|
||
```
|
||
|
||
Out[7]:
|
||
|
||
```py
|
||
True
|
||
```
|
||
|
||
In [8]:
|
||
|
||
```py
|
||
np.isinf(-np.inf)
|
||
|
||
```
|
||
|
||
Out[8]:
|
||
|
||
```py
|
||
True
|
||
```
|
||
|
||
非法值:
|
||
|
||
In [9]:
|
||
|
||
```py
|
||
np.array([0]) / 0.0
|
||
|
||
```
|
||
|
||
```py
|
||
c:\Miniconda\lib\site-packages\IPython\kernel\__main__.py:1: RuntimeWarning: invalid value encountered in divide
|
||
if __name__ == '__main__':
|
||
|
||
```
|
||
|
||
Out[9]:
|
||
|
||
```py
|
||
array([ nan])
|
||
```
|
||
|
||
这并不会报错,而是返回一个非法值。
|
||
|
||
只有 `0/0` 会得到 `nan`,非0值除以0会得到无穷:
|
||
|
||
In [10]:
|
||
|
||
```py
|
||
a = np.arange(5.0)
|
||
b = a / 0.0
|
||
b
|
||
|
||
```
|
||
|
||
```py
|
||
c:\Miniconda\lib\site-packages\IPython\kernel\__main__.py:2: RuntimeWarning: divide by zero encountered in divide
|
||
from IPython.kernel.zmq import kernelapp as app
|
||
c:\Miniconda\lib\site-packages\IPython\kernel\__main__.py:2: RuntimeWarning: invalid value encountered in divide
|
||
from IPython.kernel.zmq import kernelapp as app
|
||
|
||
```
|
||
|
||
Out[10]:
|
||
|
||
```py
|
||
array([ nan, inf, inf, inf, inf])
|
||
```
|
||
|
||
`nan` 与任何数进行比较都是 `False`:
|
||
|
||
In [11]:
|
||
|
||
```py
|
||
b == np.nan
|
||
|
||
```
|
||
|
||
Out[11]:
|
||
|
||
```py
|
||
array([False, False, False, False, False], dtype=bool)
|
||
```
|
||
|
||
想要找出 `nan` 值需要使用 `isnan`:
|
||
|
||
In [12]:
|
||
|
||
```py
|
||
np.isnan(b)
|
||
|
||
```
|
||
|
||
Out[12]:
|
||
|
||
```py
|
||
array([ True, False, False, False, False], dtype=bool)
|
||
```
|
||
|
||
## 修改形状
|
||
|
||
```py
|
||
atleast_1d
|
||
atleast_2d
|
||
atleast_3d
|
||
expand_dims
|
||
apply_over_axes
|
||
apply_along_axis
|
||
hstack
|
||
vstack
|
||
dstack
|
||
column_stack
|
||
hsplit
|
||
vsplit
|
||
dsplit
|
||
split
|
||
squeeze
|
||
```
|
||
|
||
## 其他有用函数
|
||
|
||
```py
|
||
fix
|
||
mod
|
||
amax
|
||
amin
|
||
ptp
|
||
sum
|
||
cumsum
|
||
prod
|
||
cumprod
|
||
diff
|
||
angle
|
||
|
||
unwrap
|
||
sort_complex
|
||
trim_zeros
|
||
fliplr
|
||
flipud
|
||
rot90
|
||
diag
|
||
eye
|
||
select
|
||
extract
|
||
insert
|
||
|
||
roots
|
||
poly
|
||
any
|
||
all
|
||
disp
|
||
unique
|
||
nansum
|
||
nanmax
|
||
nanargmax
|
||
nanargmin
|
||
nanmin
|
||
```
|
||
|
||
`nan` 开头的函数会进行相应的操作,但是忽略 `nan` 值。 |