预备知识
Python基础
列表生成式
详情见这里.
匿名函数
匿名函数即Lambda函数, 详情见这里.
map
函数
map
函数, 详情见这里.
zip
函数
zip
函数用于将多个可迭代对象中的索引值相同的元素打包成一个元组, 然后返回由这些元组组成的序列, 或者称一个zip对象.
例子
Tip
-
如果各个可迭代对象中的元素个数不一致, 则返回序列中元组的长度和最短的可迭代对象的长度相同
???+ example "例子'
``` [1]: L1, L2, L3 = list('abcyu'), list('def'), list('hij5') [2]: list(zip(L1, L2, L3)) [('a', 'd', 'h'), ('b', 'e', 'i'), ('c', 'f', 'j')] ```
-
当需要两个列表建立字典映射时, 可以利用
zip
函数 -
Python提供了
*
操作符用于对zip
对象进行解压
enumerate
函数
enumerate
函数用于接受一个可迭代对象, 在遍历的该可迭代对象的时候, 同时获取该元素的索引和值.
Tip
用zip
函数也可以实现与enumerate
函数相同的功能.
NumPy基础
数组构建
详情见这里.
数组索引
详情见这里.
广播
详情见这里.
数组变形与合并
转置
访问数组的T
属性, 返回的数组是一个视图.
例子
合并
np.r_()
表示上下合并, np.c_()
表示左右合并.
-
两个二维数组合并
-
一个一维数组和一个二维数组合并
应当把一维数组视为列向量(二维), 在长度匹配的情况下只能使用左右合并
np.c_()
.例子
[1]: try: np.r_[np.array([0,0]),np.zeros((2,1))] except Exception as e: Err_Msg = e [2]: Err_Msg ValueError('all the input arrays must have same number of dimensions, but the array at index 0 has 1 dimension(s) and the array at index 1 has 2 dimension(s)') [3]: np.c_[np.array([0,0]),np.zeros((2,3))] array([[0., 0., 0., 0.], [0., 0., 0., 0.]])
-
两个一维数组合并
变形
np.reshape
函数能够把原数组按照新的形状重新排列. 在使用时, 有两种模式, 分别为C
模式和F
模式, 分别以逐行和逐列的顺序进行填充读取.
例子
[1]: x = np.arange(8)
[2]: x
array([0, 1, 2, 3, 4, 5, 6, 7])
[3]: x1 = x.reshape(2,4)
[4]: x1
array([[0, 1, 2, 3],
[4, 5, 6, 7]])
[5]: x2 = x1.reshape((4, 2), order="C") # 按照行读取和填充
[6]: x2
array([[0, 1],
[2, 3],
[4, 5],
[6, 7]])
[7]: x3 = x1.reshape((4, 2), order="F") # 按照列读取和填充
[8]: x3
array([[0, 2],
[4, 6],
[1, 3],
[5, 7]])
Tip
当被调用的数组的形状是确定的情况下, 要将这个数组变形, 若你不知道某个维度的大小, 可以在np.reshape
函数中将那个维度指定为-1
. NumPy会自动计算这个维度的大小以确保在新形状下数组的元素数量和原数组的的元素数量一致.
例子
[1]: x = np.arange(8)
[2]: x
array([0, 1, 2, 3, 4, 5, 6, 7])
[3]: x1 = x.reshape(2,4)
[4]: x1
array([[0, 1, 2, 3],
[4, 5, 6, 7]])
[5]: x1.reshape((4, -1)) # NumPy自动根据"变形后元素数量一致"这条规律计算出空缺维度的大小
array([[0, 1],
[2, 3],
[4, 5],
[6, 7]])
[6]: y = np.ones((3, 1))
[7]: y
array([[1.],
[1.],
[1.]])
[8]: y.reshape(-1)
array([1., 1., 1.])
常见函数/方法
np.where
函数
np.where()
是一种条件函数, 可以指定满足条件与不满足条件位置对应的填充值.
例子
对应位置为True
时填充a
的对应元素, 否则填充5
.
np.nonzero
函数
np.nonzero
函数返回的时非零数的索引. 这个函数可用于布尔数组索引到整数数组索引的转换.
argmax/argmin
函数
-
argmax
函数返回最大值的索引 -
argmin
函数返回最小值的索引
any/all
函数
-
any
函数当数组至少存在一个True
或非零元素时返回True
, 否则返回False
-
all
函数当数组全为True
或非零元素时返回True
, 否则返回False
cumprod/cumsum
函数
-
cumprod()
表示累乘, 返回同长度的数组 -
cumsum()
表示累加, 返回同长度的数组
np.diff
函数
np.diff
函数表示每个元素的值是原数组中对应元素和前一个元素做差的值, 由于第一个元素为缺失值, 因此在默认参数情况下, 返回长度是原数组长度减1.
统计函数
常用的统计方法包括max, min, mean, median, std, var, sum
. 统计函数有np.quantile
.
例子
Tip
向量和矩阵的计算
向量内积
使用dot
函数.
矩阵乘法
使用@
运算符.
例子
-
第一章 预备知识—Joyful Pandas 1.0 documentation. (n.d.). Retrieved June 25, 2024, from https://inter.joyfulpandas.datawhale.club/Content/ch1.html ↩