当前位置: 首页 > news >正文

科学计算库 Numpy

科学计算库 Numpy 的基础内容和简单操作的学习

一 介绍

NumPy 是 Python 中科学计算的基础包。它是一个 Python 库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种 API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数等等
Numpy 包的核心是 ndarray 对象。它封装了 python 原生的同数据类型的 n 维数组
可以便捷的进行矩阵、数组的运算

为什么使用 Numpy
对于同样的数值计算任务,使用 Numpy 比直接用 Python 实现的优点在于:

  • 代码更简洁:Numpy 以数组和矩阵为粒度来进行计算并支持大量的数学函数,但是 Python 需要使用循环从底部来实现
  • 性能更高效:Numpy 数组的存储效率和计算性能,要比 Python 中使用 List 进行嵌套快很多
  • Numpy 还是各类科学计算库的基础库,如:SciPy、Pandas 等 

二 使用

 Ndarray对象

介绍

定义一个 n 维数组对象,简称 ndarray 对象,是相同类型的元素组成的,每个元素占用相同大小的内存块

存储 

对象采用了数组的索引机制,将数组中每个元素映射到内存块上,并按照行或者列的顺序在内存块上排列

属性

ndarray.ndim                      秩,即轴的数量或维度的数量
ndarray.shape                    数组的维度,对于矩阵,n 行 m 列
ndarray.size                       数组元素的总个数,相当于.shape 中 n*m 的值
ndarray.dtype ndarray       对象的元素类型
ndarray.itemsize ndarray   对象中每个元素的大小,以字节为单位 

import numpy as npndarray = np.ndarray([1,2,3,4,5])
# 秩,即轴的数量或维度的数量
print(ndarray.ndim)
# 数组的维度,对于矩阵,n 行 m 列
print(ndarray.shape)
# 数组元素的总个数,相当于.shape 中 n*m 的值
print(ndarray.size)
# ndarray对象的元素类型
print(ndarray.dtype)
# ndarray对象中每个元素的大小,以字节为单位
print(ndarray.itemsize)

创建

使用创建函数 umpy.array (object, dtype=None, copy=True, order=None,subok = False, ndmin = 0) 

import numpy as npnp.array
np.ndarray"""
object  数组的序列
dtype 可选参数 数组可通过这个改变数组的类型
copy  可选参数 当数据源为ndarray时表示数据能否被复制 默认为True
order 可选参数 当哪种内存布局来存储数组 C(行序列) F(列序列) A(默认)
ndmin 可选参数 用于指定数组的维度
subok 可选参数 类型为bool 为True时 使用object的默认对象类型 为False时 使用数组数据类型
"""

  其他的创建方式

  • np.arange 创建区间数组 (start,stop,step,dtype)
  • np.linspace 创建等差数列
  • np.logspace 创建等比数列
  • np.zeors 创建指定大小的数组,以 0 填充
  • np.ones 创建指定大小的数组,以 1 填充
import numpy as np# 区间数组
arr1 = np.arange(1,10,2,int)# 等差数组
# 三个参数 start end num
arr2 = np.linspace(1,10,5)
print(arr2)# 等比数列
# 默认以10为底 start end 都是10的幂次数
arr3_1 = np.logspace(1,100,2)
# 可以更换幂的底数
arr3_2 = np.logspace(0,4,5, base = 2)
print(arr3)# 创建指定长度的数组 以0填充
arr4 = np.zeros(3)
print(arr4)# 创建指定长度的数组 以1填充
arr5 = np.ones(3)
print(arr5)

常用函数

  • np.append (): 在数组末尾添加值
  • np.insert (): 在给定索引值前一个值插入相应的值
  • np.del (): 从输入数组中删除指定的子数组
  • np.unique (): 删除数组中重复元素
  • np.sort (): 对输入数组排序,并返回一个数组副本
import numpy as np# 常用函数
arr_test = np.array([1,2,3,4,4])
print(arr_test)
# 在数组末尾添加值
print(np.append(arr_test,[5,5]))
# 在固定索引前面插入值
print(np.insert(arr_test,2,5))
# 去除重复元素
print(np.unique(arr_test))
# 对输入数组进行排序 返回一个数组的副本
print(np.sort(arr_test))

广播机制

        广播指 numpy 对不同形状 (shape) 的数组进行数值计算的方式,对数组的算术运算通常在相应的元素上进行。
        如果两个数组 a 和 b 形状相同,即满足 a.shape == b.shape,那么 a*b 的结果就是 a 与 b 数组对应位相乘。这要求维数相同,且各维度的长度相同。
简单来说就是对两个数组,分别比较他们的每一个维度,需要满足

 
  • 数组拥有相同形状。
  • 当前维度的值相等。
  • 当前维度的值有一个是 1。
# 广播机制
import numpy as np
a = np.array([1,2,3])
b = np.array([[1,2,3],[4,5,6]])c = a + b
print(c)


 学习时间 2025.06.22

相关文章:

  • 软件工程核心知识全景图:从需求到部署的系统化构建指南
  • 【AI智能体】Spring AI MCP 服务常用开发模式实战详解
  • 命令行中SSH本地端口转发和反向远程端口转发
  • 计算机网络课程设计--基于TCP协议的文件传输系统
  • linux VFS简介
  • 笔式胰岛素简单拆解
  • SAP金属行业解决方案:无锡哲讯科技助力企业数字化转型与高效运营
  • P99延迟:系统性能优化的关键指标
  • 408考研逐题详解:2010年第3题——后序线索二叉树
  • Docker容器自动更新利器:Watchtower
  • 自动化测试01
  • 如何用AI开发完整的小程序<9>—UI自适应与游戏页优化
  • oracle rac - starwind san 磁盘共享篇
  • SpringBoot+Vue服装商城系统 附带详细运行指导视频
  • 设计模式精讲 Day 10:外观模式(Facade Pattern)
  • 华为云Flexus+DeepSeek征文|Dify-LLM平台部署教程与Flexus X实例优势解析
  • CTE vs 子查询:深入拆解PostgreSQL复杂SQL的隐藏性能差异
  • JavaScript 的 “==” 存在的坑
  • 大零售生态下开源链动2+1模式、AI智能名片与S2B2C商城小程序的协同创新研究
  • 深入理解Spring的ResponseBodyAdvice接口
  • wordpress展示型外贸网站/旺道seo优化软件
  • 一级水蜜桃/荥阳seo
  • 附近网站建设公司/sem竞价培训班
  • 在哪里找做网站的客户/收录网站有哪些
  • 石家庄搜索引擎优化/内部优化
  • 澳门wap网站制作/重庆seo网站建设