本系列文章配套代码获取有以下三种途径:
-
可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):
https://returu.github.io/Python_Data_Analysis/lab/index.html
-
也可以通过百度网盘获取,需要在本地配置代码运行环境,环境配置可以查看【Python基础】2.搭建Python开发环境:
链接:https://pan.baidu.com/s/1MYkeYeVAIRqbxezQECHwcA?pwd=mnsj
提取码:mnsj
-
前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/Python_Data_Analysis
根据《Python for Data Analysis 3rd Edition》翻译整理
—————-————————————-
通用函数(ufunc)是在ndarray数组中进行逐元素操作的函数,可以看做是相对应的简单函数的向量化封装,分为一元函数和二元函数。
1.一元函数:
一元函数是对ndarray数组中的数据执行元素级运算的函数。
常用的一元函数如下所示:
函数 |
说明 |
abs, fabs | 计算数组各元素的绝对值 |
sqrt | 计算数组各元素的平方根 |
square | 计算数组各元素的平方 |
exp | 计算数组各元素的指数值 |
log, log10, log2, log1p | 计算数组各元素的自然对数、10底对数、2底对数、log(1 + x) |
sign | 计算数组各元素的符号值,1(+),0,-1(-) |
ceil | 计算数组各元素的ceiling值 |
floor | 计算数组各元素的floor值 |
rint | 计算数组各元素的四舍五入值 |
modf | 计算数组各元素的小数和整数部分,以两个独立数组形式返回 |
isnan | 返回布尔数组,表明每个值是否为NaN(非数字)。 |
isfinite, isinf | 返回布尔数组,分别表示每个元素是有限的(非inf,非NaN)还是无限的 |
cos, cosh, sin, sinh, tan, tanh |
计算数组各元素的三角函数 |
arccos, arccosh, arcsin, arcsinh, arctan, arctanh | 计算数组各元素的反三角函数 |
logical_not | 逻辑非 |
1import numpy as np
2
3>>> arr = np.arange(-3,3).reshape(2,3) * 2.3
4>>> arr
5array([[-6.9, -4.6, -2.3],
6 [ 0. , 2.3, 4.6]])
7
8# 计算数组各元素的平方
9>>> np.square(arr)
10array([[47.61, 21.16, 5.29],
11 [ 0. , 5.29, 21.16]])
12
13# 计算数组各元素的符号值
14>>> np.sign(arr)
15array([[-1., -1., -1.],
16 [ 0., 1., 1.]])
17
18# 计算数组各元素的ceiling值
19# 即大于或等于该数字的最小整数——向上取整
20>>> np.ceil(arr)
21array([[-6., -4., -2.],
22 [ 0., 3., 5.]])
23
24# 计算数组各元素的floor值
25# 即小于或等于每个元素的最大整数——向下取整
26>>> np.floor(arr)
27array([[-7., -5., -3.],
28 [ 0., 2., 4.]])
29
30# 计算数组各元素的四舍五入值
31>>> np.rint(arr)
32array([[-7., -5., -2.],
33 [ 0., 2., 5.]])
34
35# 计算数组各元素的小数和整数部分
36# 以两个独立数组形式返回
37>>> np.modf(arr)
38(array([[-0.9, -0.6, -0.3],
39 [ 0. , 0.3, 0.6]]),
40 array([[-6., -4., -2.],
41 [ 0., 2., 4.]]))
42
43# 逻辑非
44>>> x = np.arange(5)
45>>> x
46array([0, 1, 2, 3, 4])
47>>> np.logical_not(x<3)
48array([False, False, False, True, True])
2.二元函数:
二元函数接收两个数组并返回一个数组作为结果。
常用的二元函数如下所示:
函数 | 说明 |
add | 两个数组各元素进行对应加法运算 |
subtract | 两个数组各元素进行对应减法运算 |
multiply | 两个数组各元素进行对应乘法运算 |
divide, floor_divide | 两个数组各元素进行对应除法、整除运算 |
power | 将第二个数组的元素作为第一个数组对应元素的幂次方 |
maximum, fmax | 元素级的最大值计算 |
minimum, fmin | 元素级的最小值计算 |
mod | 元素级的模运算 |
copysign(x,y) | 将数组y中各元素的符号赋值给数组x对应元素 |
greater, greater_equal, less, less_equal, equal, not_equal | 算术比较,产生布尔型数组,与数学操作符(> < >= <= == !=)效果一致 |
logical_and, logical_or, logical_xor |
逻辑与,逻辑或,逻辑异或 |
1import numpy as np
2
3>>> arr1 = np.random.randint(-20 , 20 , (2,3))
4>>> arr1
5array([[ -5, -1, -3],
6 [-18, -15, 1]])
7
8>>> arr2 = np.random.randint(-20 , 20 , (2,3))
9>>> arr2
10array([[ 5, 1, -11],
11 [-18, 16, -19]])
12
13# 加法
14>>> np.add(arr1 , arr2)
15array([[ 0, 0, -14],
16 [-36, 1, -18]])
17
18# 除法
19>>> np.divide(arr1,arr2)
20array([[-1. , -1. , 0.27272727],
21 [ 1. , -0.9375 , -0.05263158]])
22
23# 整除运算
24>>> np.floor_divide(arr1,arr2)
25array([[-1, -1, 0],
26 [ 1, -1, -1]], dtype=int32)
27
28# 元素级的最大值计算
29>>> np.maximum(arr1,arr2)
30array([[ 5, 1, -3],
31 [-18, 16, 1]])
32
33# copysign(x,y)将数组y中各元素的符号赋值给数组x对应元素
34>>> np.copysign(arr1,arr2)
35array([[ 5., 1., -3.],
36 [-18., 15., -1.]])
37
38# 算术比较,与数学操作符(> < >= <= == !=)效果一致
39>>> np.greater(arr1,arr2)
40array([[False, False, True],
41 [False, False, True]])
42>>> arr1 > arr2
43array([[False, False, True],
44 [False, False, True]])
45
46# 逻辑与,逻辑或,逻辑异或
47>>> x = np.arange(5)
48>>> x
49array([0, 1, 2, 3, 4])
50
51>>> np.logical_and(x>1, x<4)
52array([False, False, True, True, False])
53
54>>> np.logical_or(x>1, x<4)
55array([ True, True, True, True, True])
56
57>>> np.logical_xor(x>1, x<4)
58array([ True, True, False, False, True])
本篇文章来源于微信公众号: 码农设计师