数据处理:NumPy与pandas的高效运用
1. 矢量化操作与条件逻辑表达
矢量化是指一次性对整个数据数组进行操作,而非使用Python的for循环逐个处理值。
1.1 用数组操作表达条件逻辑
numpy.where 函数是三元表达式 x if condition else y 的矢量化版本。例如:
import numpy as np
xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])
yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])
cond = np.array([True, False, True, True, False])
# 使用列表推导式
result = [(x if c else y) for x, y, c in zip(xarr, yarr, cond)]
print(result) # [1.1, 2.2, 1.3, 1.4, 2.5]
# 使用numpy.where
result = np.where(cond, xarr, yarr)
print(result) # array([1.1, 2.2, 1.3, 1.4, 2.5])
numpy.where 的第二和第三个参数不一定是数组,也可以是标量。例如,将随机生成矩阵中的正值替换为2,负值替换为 -2:
rng = np.ra
NumPy与pandas数据处理技巧
超级会员免费看
订阅专栏 解锁全文
1870

被折叠的 条评论
为什么被折叠?



