Python
Numpy

Numpy

ndarray 数组类型

np.array([1,2,3,4,5])
# 可以使用一个迭代对象作为参数,创建一个ndarray
# 这个数据类型也能够被切片
np.arange(0, 10, 0.2)
# 以范围创建一个ndarray,步长可以为小数
np.ones(3)
np.ones((3,3))
# 创建一个指定形状的全为1的ndarray

数组操作

values = np.arange(1, 10, 1)
values = np.where(values < 5, <x>, <y>)
# 以指定的条件和值填充元素
# 满足条件返回<x>,不满足条件返回<y>
np.dot(values_one, valuse_two) # 计算点积
np.shape(values_one) # 输出数组维度
np.reshape(values_one, (2, 2)) # 将数组重构为指定形状
np.append(values_one, 3) # 添加元素

numpy 随机

:::tip 当随机种子相同时,生成的随机数始终是相同的,默认的随机种子为系统时间,以获取到不同的随机数 :::

np.random.randint(1, 9) # 生成一个随机数(左闭右开)
np.random.seed(114514) # 设置随机数种子

numpy 数据统计

np.sum(values, axis=1)  # 和
np.max(values, axis=0)  # 最大值
np.min(values, axis=0)  # 最小值
np.std(values, axis=0)  # 标准差
np.mean(values, axis=0)  # 算术平均数

其中,axis 代表数组层级(即代表维度,参考知乎文章 (opens in a new tab)

两个数组

DataFrame 操作

DataFrame 的操作主要分为lociloc两种,其中ioc基于列名查找,iloc基于列号查找

data.loc[:, 'math'] # 找出指定单个列
data.loc[1:5, ['month', 'math']] # 找出指定区间行的指定多个列(亦为左闭右开)
data.loc[data.loc[:, 'math'] == 90, 'math'] # 按条件找出指定的单个列

[ ]中有两个参数,其中第一个参数代表所指定的行的区间,第二个参数为指定的多个列

第一个参数能够传递由Bool类型组成的数组,从而达到按条件查询的效果

data.loc[:,'math'] == 90 # 此时将返回由Bool作为数据类型的数组
# 需要注意此时选定的列数只能为单个(即不能将列表作为参数)
data.iloc[:, 1]
data.iloc[1:5, 1:3]
data.iloc[(data.iloc[:, 1] == 90).values] # 此处条件判断需要使用.values
# 使用iloc与loc类似

数据清洗

data.drop_duplicates() # 删除重复行
data.drop(columns='month') # 删除指定列
data.fillna({'math':0}) # 传入字典,当字典键列有空值时,用字典值代替

:::warning 值得注意的是,数据清洗后的数据将会作为函数返回值,而不是在调用者上直接清洗 :::