Files
ailearning/docs/da/041.md
2020-10-19 21:08:55 +08:00

323 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 一般函数
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` 值。