Numpy学习笔记1:通用函数。

单因子函数

1
2
3
import numpy as np
arr = np.arange(10) #创建一个连续序列数组
arr
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
1
np.sqrt(arr)  #计算每个元素的平方根
array([ 0.        ,  1.        ,  1.41421356,  1.73205081,  2.        ,
        2.23606798,  2.44948974,  2.64575131,  2.82842712,  3.        ])
1
np.exp(arr)  #计算指数
array([  1.00000000e+00,   2.71828183e+00,   7.38905610e+00,
         2.00855369e+01,   5.45981500e+01,   1.48413159e+02,
         4.03428793e+02,   1.09663316e+03,   2.98095799e+03,
         8.10308393e+03])

双因子函数

1
2
x = np.random.randn(8)
y = np.random.randn(8)
1
x
array([ 0.01390002,  0.44440568, -0.69043928,  0.77192223,  0.54505387,
        1.16004907, -0.00615129,  1.75249289])
1
y
array([-1.37632082,  2.28097943, -0.08908447, -1.79805353,  1.13887393,
       -0.24691048, -0.38084412, -0.06628497])
1
np.maximum(x, y) #求最大值
array([ 0.01390002,  2.28097943, -0.08908447,  0.77192223,  1.13887393,
        1.16004907, -0.00615129,  1.75249289])

返回值是多个值的函数

1
2
arr = np.random.randn(7) * 5
arr
array([ 2.03591268, -3.38109174,  1.00418422, -2.20275474,  2.3263392 ,
        1.72357055, -3.28077738])
1
2
remainder, whole_part = np.modf(arr) #求取分数部分和整数部分
remainder #分数部分
array([ 0.03591268, -0.38109174,  0.00418422, -0.20275474,  0.3263392 ,
        0.72357055, -0.28077738])
1
whole_part #整数部分
array([ 2., -3.,  1., -2.,  2.,  1., -3.])

接受一个可选的out参数,可以就地修改原数组的值

1
arr
array([ 2.03591268, -3.38109174,  1.00418422, -2.20275474,  2.3263392 ,
        1.72357055, -3.28077738])
1
np.sqrt(arr) #求arr的平方根,arr不会被修改,由于其中包含负值,因此出现警告。
d:\Anaconda3\lib\site-packages\ipykernel_launcher.py:1: RuntimeWarning: invalid value encountered in sqrt
  """Entry point for launching an IPython kernel.





array([ 1.42685412,         nan,  1.00208993,         nan,  1.52523415,
        1.31284826,         nan])
1
arr #arr仍是原值
array([ 2.03591268, -3.38109174,  1.00418422, -2.20275474,  2.3263392 ,
        1.72357055, -3.28077738])
1
np.sqrt(arr, arr) #将arr作为out参数,则arr被就地修改
d:\Anaconda3\lib\site-packages\ipykernel_launcher.py:1: RuntimeWarning: invalid value encountered in sqrt
  """Entry point for launching an IPython kernel.





array([ 1.42685412,         nan,  1.00208993,         nan,  1.52523415,
        1.31284826,         nan])
1
arr
array([ 1.42685412,         nan,  1.00208993,         nan,  1.52523415,
        1.31284826,         nan])

单因子函数

函数 描述
abs, fabs 计算整数、浮点数和复数的绝对值
sqrt 计算平方根
square 计算平方
exp 计算以e为底的指数
log, log10,log2, log1p 计算自然底数、10为底数、2为底数和log(1+x)
sign 计算每个元素的符号: 1 (正), 0 (零), or –1 (负)
ceil 计算大于等于元素的最小整数
floor 计算小于等于元素的最大整数
rint 取整
modf 求整数部分和小数部分
isnan 返回一个数组,其元素是标志参数元素是否是NaN的布尔值
isfinite,isinf 返回一个数组,其元素是标志参数元素是否是无穷大或有限数值的布尔值
cos, cosh, sin,sinh, tan, tanh 三角函数
arccos, arccosh,arcsin, arcsinh,arctan, arctanh 反三角函数
logical_not 逻辑非( ~arr )

双因子函数

函数 描述
add,subtract,multiply,divide, floor_divide 加法,减法、乘法、除法、不带余数除法
power 指数
maximum, fmax ,minimum, fmin 最大、最小,fmax、fmin忽略 NaN值
mod 余数
copysign 拷贝第二个参数的符号给第一个参数
greater, greater_equal,less, less_equal,equal, not_equal >, >=, <, <=, ==, !=
logical_and,logical_or, logical_xor 逻辑并、或、异或(&、|、^)