Python数据分析 知识量:13 - 56 - 232
NumPy有许多函数可以用于数据分析,元素级函数是指对数组中每个元素进行批量操作的函数,常用的如下所示:
函数 | 说明 |
---|---|
abs | 求元素的绝对值。 |
sqrt | 求元素的平方根。 |
square | 求元素的平方。 |
exp | 求元素的以e为底的指数。 |
log、log10、log2、log1p | 求元素以e为底、10为底、2为底的对数,以及log(1+x)。 |
modf | 将元素(浮点数)小数和整数部分以独立的数组返回。 |
isnan | 判断元素是否是NaN,返回布尔值。 |
下面是一些示例:
import numpy as np arr=np.array([[1,-2,3],[-4,5,6],[7,-8,9]]) print("abs:\n",np.abs(arr)) print("square:\n",np.square(arr)) print("exp:\n",np.exp(arr)) print("sqrt:\n",np.sqrt(np.array([1.2,2.6,3.8]))) print("log:\n",np.log(np.array([1.2,2.6,3.8]))) print("modf:\n",np.modf(np.array([1.2,2.6,3.8])))
运行结果为:
abs: [[1 2 3] [4 5 6] [7 8 9]] square: [[ 1 4 9] [16 25 36] [49 64 81]] exp: [[2.71828183e+00 1.35335283e-01 2.00855369e+01] [1.83156389e-02 1.48413159e+02 4.03428793e+02] [1.09663316e+03 3.35462628e-04 8.10308393e+03]] sqrt: [1.09544512 1.61245155 1.94935887] log: [0.18232156 0.95551145 1.33500107] modf: (array([0.2, 0.6, 0.8]), array([1., 2., 3.]))
描述统计函数用于对整个数组或其行、列数据进行统计运算,常用的函数如下:
函数 | 说明 |
---|---|
sum | 求和。 |
mean | 求平均值。 |
std、var | 求标准差、方差。 |
max、min | 求最大值、最小值。 |
argmax、argmin | 求最大值和最小值对应的索引。 |
cumsum | 求所有元素的累计和,且以数组的形式返回。 |
cumprod | 求所有元素的累计积,且以数组的形式返回。 |
下面是一些示例:
import numpy as np arr=np.array([[1,2,3],[4,5,6]]) print("array:\n",arr) print("sum of array:\n",arr.sum()) print("sum of row:\n",arr.sum(axis=1)) print("sum of column:\n",arr.sum(axis=0)) print("mean of array:\n",arr.mean()) print("mean of row:\n",arr.mean(axis=1)) print("mean of column:\n",arr.mean(axis=0)) print("max of array:\n",arr.max()) print("min of row:\n",arr.min(axis=1)) print("argmin:\n",arr.argmin()) print("cumsum:\n",arr.cumsum()) print("cumprod:\n",arr.cumprod())
运行结果为:
array: [[1 2 3] [4 5 6]] sum of array: 21 sum of row: [ 6 15] sum of column: [5 7 9] mean of array: 3.5 mean of row: [2. 5.] mean of column: [2.5 3.5 4.5] max of array: 6 min of row: [1 4] argmin: 0 cumsum: [ 1 3 6 10 15 21] cumprod: [ 1 2 6 24 120 720]
条件函数np.where(condition,x,y)功能为:如果condition为真,返回x;否则返回y。
import numpy as np arr=np.array([[1,6,3],[3,5,6]]) print("array:\n",arr) print("condition:\n",np.where(arr>3,"yes","no")) print(np.where(arr>3)) # 返回满足条件的值对应的位置
运行结果为:
array: [[1 6 3] [3 5 6]] condition: [['no' 'yes' 'no'] ['no' 'yes' 'yes']] (array([0, 1, 1], dtype=int64), array([1, 1, 2], dtype=int64))
如上所示:如果函数没有设置x和y,只有condition部分,就会返回满足条件元素的位置坐标。返回结果以元组的形式给出,通常原数组有几维,输出的元组中就包含几个数组,分别对应符合条件元素的各维坐标。
数组可以看做集合,集合关系包括:包含、交集、并集和差集。分别可以使用以下函数进行操作:
in1d() 处理包括关系
intersect1d() 处理交集关系
union1d() 处理并集关系
setdiff1d() 处理差集关系
以下是一些示例:
import numpy as np arr1=np.arange(3,9) arr2=np.arange(1,6) print('arr1:\n',arr1) print('arr2:\n',arr2) print("包含关系:\n",np.in1d(arr1,arr2)) print("交集关系:\n",np.intersect1d(arr1,arr2)) print("并集关系:\n",np.union1d(arr1,arr2)) print("差集关系:\n",np.setdiff1d(arr1,arr2))
运行结果为:
arr1: [3 4 5 6 7 8] arr2: [1 2 3 4 5] 包含关系: [ True True True False False False] 交集关系: [3 4 5] 并集关系: [1 2 3 4 5 6 7 8] 差集关系: [6 7 8]
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6