Python数据分析

Python数据分析 知识量:13 - 56 - 232

2.11 数据分析函数><

元素级函数- 2.11.1 -

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.]))

描述统计函数- 2.11.2 -

描述统计函数用于对整个数组或其行、列数据进行统计运算,常用的函数如下:

函数说明
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]

条件函数- 2.11.3 -

条件函数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部分,就会返回满足条件元素的位置坐标。返回结果以元组的形式给出,通常原数组有几维,输出的元组中就包含几个数组,分别对应符合条件元素的各维坐标。

集合关系- 2.11.4 -

数组可以看做集合,集合关系包括:包含、交集、并集和差集。分别可以使用以下函数进行操作:

  • 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]