汇总和计算描述性统计
pandas包含一系列汇总和统计函数。多数函数属于归纳或者汇总统计的范畴,这些函数从Series中计算出一个单值(如sum和mean函数),或从DataFrame的每行(列)抽取出一个Series对象。与Numpy中相对应的函数不一样的是,pandas的函数内建处理缺失值的能力。
1 | import numpy as np |
Feilishu's Note
pandas包含一系列汇总和统计函数。多数函数属于归纳或者汇总统计的范畴,这些函数从Series中计算出一个单值(如sum和mean函数),或从DataFrame的每行(列)抽取出一个Series对象。与Numpy中相对应的函数不一样的是,pandas的函数内建处理缺失值的能力。
1 | import numpy as np |
1 | import numpy as np |
1 | result |
array([ 1.1, 2.2, 1.3, 1.4, 2.5])
where函数典型的用法是给予一个array产生另一个array,如下列:
1 | arr = np.random.randn(4, 4) |
1 | arr |
array([[-2.5264061 , 0.31600076, -0.3584314 , 1.1104543 ],
[-0.36526226, 1.35603517, -0.17306545, -1.91238476],
[ 0.89170697, -0.23551787, -0.78883913, -0.76915407],
[-0.2233249 , -0.67969266, -0.64915308, -1.46796594]])
1 | arr > 0 |
array([[False, True, False, True],
[False, True, False, False],
[ True, False, False, False],
[False, False, False, False]], dtype=bool)
1 | np.where(arr > 0, 2, -2) #以标量为基础指定需要产生的元素,并不是一定是数组 |
array([[-2, 2, -2, 2],
[-2, 2, -2, -2],
[ 2, -2, -2, -2],
[-2, -2, -2, -2]])
1 | np.where(arr > 0, 2, arr) #也可以同时使用标量和数组为基,产生新的数组 |
array([[-2.5264061 , 2. , -0.3584314 , 2. ],
[-0.36526226, 2. , -0.17306545, -1.91238476],
[ 2. , -0.23551787, -0.78883913, -0.76915407],
[-0.2233249 , -0.67969266, -0.64915308, -1.46796594]])
1 | import numpy as np |
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 | x = 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 | arr = np.random.randn(7) * 5 |
array([ 2.03591268, -3.38109174, 1.00418422, -2.20275474, 2.3263392 ,
1.72357055, -3.28077738])
1 | remainder, whole_part = np.modf(arr) #求取分数部分和整数部分 |
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.])
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 | 逻辑并、或、异或(&、|、^) |