NumPy通用函数

这篇博文主要是来介绍NumPy中的一些通用函数,是在ndarray数据中进行逐元素操作的函数。

一元通用函数

这部分的内容比较简单,有一点Python基础的同学就可以很容易的理解并运用。

#导入Numpy
import numpy as np
#生成一元数组
arr = np.arange(10)
arr
#计算每个元素的平方根
np.sqrt(arr)
#计算每个元素的自然指数值
np.exp(arr)

Out:

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array([0.        , 1.        , 1.41421356, 1.73205081, 2.        ,
       2.23606798, 2.44948974, 2.64575131, 2.82842712, 3.        ])
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])

modf函数是python内建函数divmod的向量化版本,返回一个浮点值数组的小数部分和整数部分。

arr = np.random.randn(7) * 5
arr
remainder,whole_part = np.modf(arr)
remainder
whole_part

Out:

array([-4.42433257,  0.77142794, -2.81067959, -3.00623027,  7.65543378,
       -0.71083518,  1.3395564 ])
array([-0.42433257,  0.77142794, -0.81067959, -0.00623027,  0.65543378,
       -0.71083518,  0.3395564 ])
array([-4.,  0., -2., -3.,  7., -0.,  1.])
np.abs(arr)#计算每个元素的绝对值
np.fabs(arr)#计算绝对值
np.square(arr)#计算每个元素的平方
np.exp(arr)#计算每个元素的自然指数值
np.log(arr)#计算每个元素的自然对数
np.sign(arr)#计算每个元素的符号值,1,0,-1分别代表正数,0,负数
np.ceil(arr)#计算每个元素的最高整数值
np.floor(arr)#计算每个元素的最小整数值

Out:

array([4.42433257, 0.77142794, 2.81067959, 3.00623027, 7.65543378,
       0.71083518, 1.3395564 ])
array([4.42433257, 0.77142794, 2.81067959, 3.00623027, 7.65543378,
       0.71083518, 1.3395564 ])
array([19.57471872,  0.59510107,  7.89991976,  9.03742044, 58.60566636,
        0.50528665,  1.79441135])
array([1.19822059e-02, 2.16285248e+00, 6.01640916e-02, 4.94778457e-02,
       2.11209110e+03, 4.91233758e-01, 3.81734976e+00])
array([        nan, -0.25951201,         nan,         nan,  2.03541569,
               nan,  0.29233852])
array([-1.,  1., -1., -1.,  1., -1.,  1.])
array([-4.,  1., -2., -3.,  8., -0.,  2.])
array([-5.,  0., -3., -4.,  7., -1.,  1.])

上面结果中有出现nan是因为求x的自然对数时,x需要为正数,而arr中存在负数。

np.rint(arr)#将元素保留到整数位
np.modf(arr)#返回小数和整数部分
np.isnan(arr)#返回布尔值数组,判断元素是否为NaN
np.isfinite(arr)#判断元素是否有限(非inf,非NaN)
np.isinf(arr)#判断元素是否无限
np.cos(arr)
np.arccos(arr)
arr
np.logical_not(arr)#对数组元素按位取反

Out:

array([-4.,  1., -3., -3.,  8., -1.,  1.])
(array([-0.42433257,  0.77142794, -0.81067959, -0.00623027,  0.65543378,
        -0.71083518,  0.3395564 ]), array([-4.,  0., -2., -3.,  7., -0.,  1.]))
array([False, False, False, False, False, False, False])
array([ True,  True,  True,  True,  True,  True,  True])
array([False, False, False, False, False, False, False])
array([-0.28408925,  0.7169159 , -0.94574608, -0.99085249,  0.19724592,
        0.75781721,  0.22918462])
array([       nan, 0.68971414,        nan,        nan,        nan,
       2.36148124,        nan])
array([-4.42433257,  0.77142794, -2.81067959, -3.00623027,  7.65543378,
       -0.71083518,  1.3395564 ])
array([False, False, False, False, False, False, False])

二元通用函数

二元函数会接收两个数组,对两个数组进行操作,并且返回一个数组作为结果。

np.add(arr,[1])#加
np.subtract(arr,arr)#减
np.divide(arr,[1])#除
np.floor_divide(arr,[2])#整除,放弃余数
np.power(arr,[2])#第二个数组的元素作为幂次方
np.maximum(arr,[100])#逐个元素计算最大值
np.fmax(arr,[100])
np.minimum(arr,[100])#逐个元素计算最小值
np.fmin(arr,[1])
np.mod(arr,[2])#取余数
np.copysign(arr,[23])#将第一个数组的符号值改为第二个数组的符号值
np.greater(arr,np.arange(7))#进行逐个元素的比较,返回布尔值
np.greater_equal(arr,np.arange(7))#>=
np.less(arr,np.arange(7))#<
np.less_equal(arr,np.arange(7))#<=
np.equal(arr,np.arange(7))#=
np.not_equal(arr,np.arange(7))#不等于

Out:

array([-3.42433257,  1.77142794, -1.81067959, -2.00623027,  8.65543378,
        0.28916482,  2.3395564 ])
array([0., 0., 0., 0., 0., 0., 0.])
array([-4.42433257,  0.77142794, -2.81067959, -3.00623027,  7.65543378,
       -0.71083518,  1.3395564 ])
array([-3.,  0., -2., -2.,  3., -1.,  0.])
array([19.57471872,  0.59510107,  7.89991976,  9.03742044, 58.60566636,
        0.50528665,  1.79441135])
array([100., 100., 100., 100., 100., 100., 100.])
array([100., 100., 100., 100., 100., 100., 100.])
array([-4.42433257,  0.77142794, -2.81067959, -3.00623027,  7.65543378,
       -0.71083518,  1.3395564 ])
array([-4.42433257,  0.77142794, -2.81067959, -3.00623027,  1.        ,
       -0.71083518,  1.        ])
array([1.57566743, 0.77142794, 1.18932041, 0.99376973, 1.65543378,
       1.28916482, 1.3395564 ])
array([4.42433257, 0.77142794, 2.81067959, 3.00623027, 7.65543378,
       0.71083518, 1.3395564 ])
array([False, False, False, False,  True, False, False])
array([False, False, False, False,  True, False, False])
array([ True,  True,  True,  True, False,  True,  True])
array([ True,  True,  True,  True, False,  True,  True])
array([False, False, False, False, False, False, False])
array([ True,  True,  True,  True,  True,  True,  True])
#进行逐个元素的逻辑操作,与操作符&,|,^效果一致
arr
np.logical_and(arr,np.random.randint(0,2,size=[1,7]))
np.logical_or(arr,np.zeros(7))
np.logical_xor(arr,np.zeros(7))#按位异或,相同则为0,不同则为1

Out:

array([-4.42433257,  0.77142794, -2.81067959, -3.00623027,  7.65543378,
       -0.71083518,  1.3395564 ])
array([[ True, False,  True,  True, False,  True,  True]])
array([ True,  True,  True,  True,  True,  True,  True])
array([ True,  True,  True,  True,  True,  True,  True])

你可能感兴趣的:(python学习,数据分析)