Pandas_1_预备知识

Chapter1_Python基础

1.1 Python基础

  • 推导式: 两个对象之间的映射关系,类似于实数之间关系变换的函数,只不过对象变成了矩阵。
    # Ex1-1
    vacabulary = ['conform', 'deem', 'indispensiable', 'intensify', 'ascribe']
    {i: len(i) for i in vacabulary}
    # Ex1-2
    emm..大概知道是怎么个意思,但好像不会写呢
  • 匿名函数: 关键字lambda,后紧接形参名,和映射关系以冒号分开
    # Ex1-3
    list(filter(lambda x: sum(1 if i%3 == 0 else 0 for i in x) > 0, my_list))
  • 打包函数: 用于处理两个列表相同位置上元素关系
    # Ex1-4
    L3 = ["0", "1", "2", "3", "4"]
    for l3, l2 in zip(L3, L2):
        print(l3, l2)

1.2 NumPy基础

1.2.1 NumPy数组的构造

  • 等差数列:
    np.linspace(闭起始点,闭终止点, 样本个数)
    np.arange(闭起始点,开终止点,步长)
  • 特殊矩阵:
    np.zeros((2, 3, 4))     # 创建全零数组
    np.ones((2, 1, 2))      # 创建全一数组
    np.full((2, 3), 10)     # 创建全十数组
    np.zeros_like(arr)      # 创建和给定数组相同大小的全零数组
    np.ones_like(arr)       # 创建和给定数组相同大小的全一数组
    np.full_like(arr, [100, 200])
    np.eyes(n)              # 创建n×n的单位矩阵
  • 随机数组:
    np.random.uniform(闭区间起始点, 闭区间终止点, size)
    np.random.rand(size)                            # 默认取值区间[0,1]
    np.random.normal(mu, sigma, size)               # 生成服从N[mu, sigma]的正态分布数组
    np.random.randn(size)                           # 标准正态分布
    np.random.randint(闭起始点, 开终止点, size)      # 生成区间左开右闭的随机整数数组
    np.random.choice(arr, size, replace=False, p)   # 以给定概率在已知数组中进行不放回抽样
    np.random.permutation(arr)                      # 打散原列表

1.2.2 NumPy数组的变形

  • 由元素组织方式变化导致的变形:
    array = array.transpose(2, 0, 1)                        # 括号内为新的维度顺序
    array = array.T                                         # 将原先的维度顺序逆向变换
    array = np.swapaxes(array, a, b)                        # 仅变换多维数组中的两个维度
    my_matrix = np.arange(8).reshape((2, 4), order = 'C')   # 括号内为欲构造数组的维度,order = 'C'/'F'来决定行/列优先填充
    array = np.expand_dims(array, (0, 2))                   # 在第一和第三维度插入维数为一的维度
    array = np.squeeze(array, (0, 2))                       # 将第一和第三维度压缩

  • 由合并和拆分导致的变形:
    res = np.stack([pop_man, pop_women], axis=2)                # 异质性连接,新增一个维度
    res = np.concatenate([pop_1_6, pop_7_12], axis=1)           # 同质性连接,在原有唯独基础上进行延长
    res = np.split(pop_1_6, indices_or_sections=3, axis=1)      # 以第二维度均匀划分成三个部分
    res = np.split(pop_1_6, indices_or_sections=[1, 4], axis=1) # 自定义分割点
    array = np.repeat(array, repeats=2)                         # repeat后接重复的次数
    # Ex1-5
    concadate(),类似于同质性的划分
    # Ex1-6
    array = np.zeros((10, 10))
    print(array)
    array[0] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    array[:, 0] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(array)
    # arr1 = np.repeat(array, repeats=10, axis=1)
    # arr2 = np.repeat(array, repeats=10, axis=0)
    # print(arr1)
    # print(arr2)

1.2.3 NumPy数组的切片

    target[0:3, :, 1:3]
    target[[True, False, True, False], :, :]
    target[:, np.newaxis, np.newaxis].shape         # 类似于expand_dims()操作

1.2.4 广播机制

    # Ex1-8
    判断是否符合广播机制的条件:从后往前进行比对,如满足一下任一条件则符合广播机制,广播结果的维度以高纬度者为准:①值相等;②值为1.

1.2.5 常用函数

  • 计算函数:
    max()       # 最大值
    min()       # 最小值
    mean()      # 平均值
    median()    # 中位数
    std()       # 标准差
    var()       # 方差
    sum()       # 总和
    quantile()  # 分位数
  • 计算函数:
    max()       # 最大值
    min()       # 最小值
    mean()      # 平均值
    median()    # 中位数
    std()       # 标准差
    var()       # 方差
    sum()       # 总和
    quantile()  # 分位数
posted @ 2022-08-20 21:26  Mundane-_-  阅读(22)  评论(0编辑  收藏  举报