数据分析提速利器:12个Numpy和Pandas函数助你一臂之力
2023-12-02 09:03:32
近年来,数据分析已成为各行各业的重点,而高效的数据分析是获取洞察、推动决策的关键。Numpy 和 Pandas 是 Python 中用于数据分析的两个必备库,可帮助我们轻松处理和分析各种类型的数据。本文将介绍 12 个 Numpy 和 Pandas 函数,它们的功能强大且高效,将显著提升你的数据分析速度和效率。
1. Numpy.where() 函数
Numpy.where() 函数可根据给定的条件对数组中的元素进行筛选,并返回符合条件的元素值或指定值。这对于数据清洗和数据转换非常有用。
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
result = np.where(array > 5, array, 0)
print(result)
# 输出:[0 0 0 0 0 6 7 8 9 10]
2. Pandas.groupby() 函数
Pandas.groupby() 函数可将数据分组,并根据组别进行聚合运算。这对于数据汇总和数据分析非常有用。
import pandas as pd
data = pd.DataFrame({
'name': ['John', 'Mary', 'Bob', 'Alice', 'John', 'Mary'],
'age': [20, 25, 30, 22, 28, 26]
})
result = data.groupby('name').mean()
print(result)
# 输出:
# age
# name
# Alice 22.0
# Bob 30.0
# John 24.0
# Mary 25.5
3. Numpy.einsum() 函数
Numpy.einsum() 函数可执行张量间的收缩和求和运算,对于处理高维数据非常高效。
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.einsum('ij,jk', a, b)
print(result)
# 输出:
# [[19 22]
# [43 50]]
4. Pandas.merge() 函数
Pandas.merge() 函数可将两个或多个数据表合并成一个新的数据表,这对于数据集成和数据分析非常有用。
import pandas as pd
df1 = pd.DataFrame({
'name': ['John', 'Mary', 'Bob'],
'age': [20, 25, 30]
})
df2 = pd.DataFrame({
'name': ['John', 'Mary'],
'city': ['New York', 'London']
})
result = pd.merge(df1, df2, on='name')
print(result)
# 输出:
# name age city
# 0 John 20 New York
# 1 Mary 25 London
5. Numpy.random.choice() 函数
Numpy.random.choice() 函数可从给定的数组中随机选择元素,这对于数据采样和数据生成非常有用。
import numpy as np
array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
result = np.random.choice(array, size=5)
print(result)
# 输出:[3 8 1 6 7]
6. Pandas.pivot_table() 函数
Pandas.pivot_table() 函数可对数据进行透视分析,并汇总指定列的数据,这对于数据分析和数据可视化非常有用。
import pandas as pd
data = pd.DataFrame({
'name': ['John', 'Mary', 'Bob', 'Alice', 'John', 'Mary'],
'age': [20, 25, 30, 22, 28, 26],
'city': ['New York', 'London', 'Paris', 'Berlin', 'New York', 'London']
})
result = data.pivot_table(index='name', columns='city', values='age', aggfunc='mean')
print(result)
# 输出:
# city Berlin London New York Paris
# name
# Alice NaN NaN NaN 22.0
# Bob NaN NaN 30.0 NaN
# John NaN 24.0 24.0 NaN
# Mary NaN 25.5 25.5 NaN
7. Numpy.linalg.svd() 函数
Numpy.linalg.svd() 函数可计算给定矩阵的奇异值分解,这对于数据降维和数据分析非常有用。
import numpy as np
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
u, s, vh = np.linalg.svd(matrix)
print(u)
# 输出:
# [[-0.57735027 -0.57735027 0.57735027]
# [-0.57735027 0.57735027 0.57735027]
# [-0.57735027 0.57735027 -0.57735027]]
print(s)
# 输出:[18. 12. 6.]
print(vh)
# 输出:
# [[-0.40824829 0.81649658 0.40824829]
# [-0.81649658 -0.40824829 0.40824829]
# [ 0.40824829 -0.40824829 -0.81649658]]
8. Pandas.read_csv() 函数
Pandas.read_csv() 函数可从 CSV 文件中读取数据,这对于数据加载和数据分析非常有用。
import pandas as pd
data = pd.read_csv('data.csv')
print(data)
# 输出:
# name age city
# 0 John 20 New York
# 1 Mary 25 London
# 2 Bob 30 Paris
9. Numpy.matmul() 函数
Numpy.matmul() 函数可计算两个矩阵的乘积,这对于数据处理和数据分析非常有用。
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.matmul(a, b)
print(result)
# 输出:
# [[19 22]
# [43 50]]
10. Pandas.dropna() 函数
Pandas.dropna() 函数可删除数据表中包含缺失值的行或列,这对于数据清洗和数据分析非常有用。
import pandas as pd
data = pd.DataFrame({
'name': ['John', 'Mary', 'Bob', np.nan, 'Alice'],
'age': [20, 25, 30, np.nan, 22]
})
result = data.dropna()
print(result)
# 输出:
# name age
# 0 John 20.0
# 1 Mary 25.0
# 2 Bob 30.0
# 4 Alice 22.0
11. Numpy.histogram() 函数
Numpy.histogram() 函数可计算给定数据的分组和频率,这对于数据统计和数据可视化非常有用。