numpy的基本使用

numpy概述

  numpy介绍

    # 一个开源的Python科学计算库
    # 计算起来要比python简洁高效
    # Numpy使用ndarray对象来处理多维数组
    # NumPy提供了一个N维数组类型ndarray,它描述了相同类型的“items”的集合
    # 生成numpy对象:np.array()

  numpy的优势

    # 内存块风格
         # list -- 分离式存储,存储内容多样化
         # ndarray -- 一体式存储,存储类型必须一样

    # ndarray支持并行化运算(向量化运算)

    # ndarray底层是用C语言写的,效率更高,释放了GIL

numpy数据结构————ndarray

  ndrray 是一种类似于多维数组的一体式存储数据类型,对ndarray的操作进行了相关的优化,专门用于对多维数组(多用于二维数组矩阵)进行高效率的数学运算。

  ndarray的属性

    # ndarray.shape

    # ndarray.ndim

    # ndarray.size

    # ndarray.itemsize

    # ndarray.dtype

numpy的基本操作

  生成数组的方法

    生成0和1的数组

      ones = np.ones([4, 8])

      zeros = np.zeros(ndarray.shape)

      ones1 = np.ones_like(ndarray)

      zeros1 = np.zeros_like(ndarray)

    从现有数组进行生成

      np.array(ndarray)

      np.asarray(ndarray)

    生成固定范围数组

      # np.linspace(0, 100, 11)

      # np.arrange(10, 50, 2)

      # np.logspace(0, 2, 10)

 

    正态分布

      np.random.normal(loc, scale, size)

      np.radndom.randn(d0, d1, d2, ...)

    均匀分布

      np.random.uniform(low, high, size) 

      np.random.rand(d0, d1, d2, ...)

      np.random.randint(low, high, size)

  数组的切片、索引

    ndarray[:][:][:]...  先行后列

  数组形状的修改

    ndarray.reshape(array.shape)

    ndarray.resize(array.shape)

    ndarray.T

  元素类型的修改

    ndarray.dtype

    ndarray.astype(np.dtype)

    bytes = ndarray.tobytes()

  数组去重

    np.unique(ndarray)

ndarray运算

  逻辑运算

    ndarray > 60

    ndarray[ndarray>60] = 1

        相同shape的dtype=bool

  通用判断函数

    np.all(ndarray>num)

    np.any(ndarray>num)

  三元运算符

    np.where(ndarray>num, 1, 0)

    np.where(np.logicl_and(ndarray>num1, ndarray<num2), 1, 0)

    np.where(np.logic_or(ndarray<num1, ndarray>num2), 1, 0)

  统计运算

      # np.max(ndarray, axis)
      # np.min()
      # np.median()
      # np.mean()
      # np.std()
      # np.var()
      # np.argmax(axis=) — 最大元素对应的下标
      # np.argmin(axis=) — 最小元素对应的下标

数组间的运算

  数组与数之间的运算

    ndarray + 1

    ndarray / 2

  数组与数组之间的运算

    广播机制

    arr1 = np.array([[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]])
    arr2 = np.array([[1], [3]])

    arr1 + arr2

数学矩阵

    a1 = np.array([[1, 2, 3], [4,5,6], [7,8,0]])
    a2 = np.array([[1,2,1],[1,1,2],[2,1,1]])

    np.matmul(a1, a2)  

    np.dot(a1, a2)

    #注意:二者都是矩阵乘法。 np.matmul中禁止矩阵与标量的乘法。 在矢量乘矢量的內积运算中,np.matmul与np.dot没有区别。

  

  

      

 

  

    

  

posted @   Avery_rainys  阅读(60)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示