栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

numpy基础教程8讲(根据b站莫烦老师)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy基础教程8讲(根据b站莫烦老师)

边听莫烦老师的课边敲下来的

import numpy as np


def class1():
    array1 = np.array([[1, 2, 3],
                      [4, 5, 6]])
    print(array1)
    print("维度dimension", array1.ndim)
    print("shape(几行几列)", array1.shape)
    print("size(几个元素)", array1.size)


def class2():
    a2 = np.array([1, 2, 3], dtype=np.int64)  # int int64 float32
    print(a2.dtype)
    array2 = np.zeros((3, 4))  # 生成全0 数列
    print(array2)
    array2_1 = np.ones((2, 5), dtype=np.int16)  # 生成全1 数列,其他数字可以×
    print(array2_1)
    array2_2 = np.arange(12).reshape((3, 4))  # 生成顺序 数列
    print(array2_2)
    array2_3 = np.linspace(0, 25, 6, dtype=int).reshape((2, 3))  # 生成分段数列
    print(array2_3)


def class3():
    # 加法减法
    a3 = np.array([10, 20, 30, 40])
    b3 = np.arange(4)
    c3 = a3 + b3
    print(a3, "n", b3, "n", c3)
    # 平方
    c3 = b3 ** 2
    print("-" * 35)
    print(f"b={b3},c = b**2,c={c3}")
    print("-" * 35)
    # sin
    print("-" * 20, "三角函数", "-" * 20)
    c3 = 10 * np.sin(a3)
    print(c3)
    print("-" * 20, "b<3", "-" * 20)
    print(f"b = {b3}, b<3 = {b3 < 3}")
    # 矩阵运算
    print("-" * 20, "矩阵运算", "-" * 20)
    a3_1 = np.array([[1, 1], [0, 1]])
    b3_1 = np.arange(4).reshape((2, 2))
    print(f"a={a3_1}nb={b3_1}")
    print(f"a*b=n{a3_1 * b3_1}")
    print(f"矩阵乘法np.dot(a,b)=   也可以写成a.dot(b)=n{np.dot(a3_1, b3_1)}")  # 矩阵乘法  np.dot(a,b)   也可以写成  a.dot(b)
    # 随机
    print("-" * 20, "随机 最大值", "-" * 20)
    a3_2 = np.random.random((2, 4))
    print(a3_2)
    print(np.sum(a3_2, axis=1))  # axis=0纵向 1横向
    print(np.min(a3_2))
    print(np.max(a3_2))


def class4():
    a4 = np.arange(2, 14).reshape((3, 4))
    print(a4)
    print("-" * 20, "索引最小、最大argmin", "-" * 20)
    print(np.argmin(a4))  # 索引最小、最大
    print(np.argmax(a4))
    print("-" * 20, "累加cumsum", "-" * 20)
    # 平均 mean average 累加前面所有项的和 cumsum() 累差(每两项的差) diff()
    print(np.cumsum(a4))
    print("-" * 20, "限定范围clip", "-" * 20)
    # 排序 sort    转置 T或transpose   截取clip 限定范围
    print(np.clip(a4, 5, 9))


def class5():
    # 索引
    a5 = np.arange(3, 15).reshape((3, 4))
    print(a5)
    print(a5[2][1])
    print(a5[2, 1])
    print(a5[2, :])  # 2行所有数
    for row in a5:  # 输出行
        print(row)
    for column in a5.T:  # 输出列
        print(column)


def class6():
    a6 = np.array([1, 1, 1])
    b6 = np.array([2, 2, 2])
    print("-" * 20, "合并", "-" * 20)
    c6 = np.vstack((a6, b6))  # 上下合并 vertical(垂直) stack(堆)
    print(c6.shape)
    print(c6)
    d6 = np.hstack((a6, b6))  # 左右合并 horizontal stack
    print(d6)
    e6 = np.concatenate((a6, b6, b6), axis=0)  # 可以指定axis
    print(e6)
    print("-" * 20, "横向变纵向a6[:, np.newaxis]", "-" * 20)
    # a6.T不能把横向数列变成竖向数列
    print(a6[:, np.newaxis])  # 横向变纵向


def class7():
    a7 = np.arange(12).reshape((3, 4))
    print(a7)
    print("-" * 20, "分割", "-" * 20)
    print(np.split(a7, 3, axis=0))  # axis=0对每一列切分(从上到下切),把3行4列分成3行;1-从左到右切
    # 不等量分割
    print("-" * 20, "不等量分割", "-" * 20)
    print(np.array_split(a7, 2, axis=0))
    # 还有vsplit hsplit


def class8():
    print("-" * 20, "浅拷贝", "-" * 20)
    a8 = np.arange(4)
    b8 = a8  # 浅拷贝
    print(a8)
    a8[0] = 9
    print(a8)
    # 浅拷贝
    print(b8 is a8)
    # 深拷贝 deep copy
    print("-" * 20, "深拷贝", "-" * 20)
    c8 = a8.copy()
    a8[1:3] = [8, 7]
    print(a8)
    print(c8)
    print(c8 is a8)


def main():
    class8()


if __name__ == '__main__':
    main()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/293972.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号