Numpy基础教程

news2024/12/21 18:36:11

  • 1 Numpy 对象
  • 2 Numpy创建
    • numpy.array 构造器来创建
    • numpy.empty
    • numpy.zeros
    • numpy.ones
    • numpy.arange
    • Numpy索引
  • 3 Numpy常用操作
    • numpy.reshape
  • numpy.reshape(arr,newshape,order = 'C')
    • numpy.transpose
    • numpy.expand_dims
    • numpy.squeeze

Numpy
功能十分强大的python扩展库,数学库,主要用于数组计算。

1 Numpy 对象

  • N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引
  • ndarray 中的每个元素在内存中都有相同存储大小的区域
  • ndarray 内部由以下内容组成:
    • 一个指向数据(内存或内存映射文件中的一块数据)的指针
    • 数据类型或 dtype,描述在数组中的固定大小值的格子
    • 一个表示数组形状(shape)的元组,表示各维度大小的元组
    • 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数

2 Numpy创建

numpy.array 构造器来创建

# order:创建数组的样式,C为行方向,F为列方向,A为任意方向
# numpy.array(object,dtype = None, copy =True, order = None, subok = False, ndmin = 0)
a = np.array([1,2,3])
b = np.array([[1,2],[3,4]]) # 二维数组,外面必须有一层方括号
c = np.array([1,2,3],dtype = complex) #复数

print(a)
print(b)
print(c)

在这里插入图片描述

numpy.empty

numpy.empty方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组

#order - "C""F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。
# numpy.empty(shape,dtype = float, order = 'C')
x = np.empty([3,2],dtype = int) #创建一个32列,未初始化的数组
print(x)

在这里插入图片描述

numpy.zeros

numpy.zeros创建指定大小的数组,数组元素以 0 来填充

#numpy.zeros(shape, dtype = float, order = 'C')
y = np.zeros([2,5],dtype = int)  #[2,5]圆括号、方括号 好像都行
print(y)

在这里插入图片描述

numpy.ones

numpy.ones创建指定形状的数组,数组元素以 1 来填充

#numpy.ones(shape, dtype = None, order = 'C')
y = np.ones((2,5),dtype = int)  #[2,5]圆括号、方括号 好像都行
print(y)

在这里插入图片描述

numpy.arange

numpy.arange创建数值范围并返回 ndarray 对象

# start,stop指定范围,step设定步长,dtype数据类型生成ndarry
# numpy.arange(start,stop,step,dtype)
x = np.arange (10,20,2) # 10~20步长2,不包含20
y = np.arange(5) # 到5结束,默认0开始,步长1
print(x)
print(y)

在这里插入图片描述

Numpy索引

  • 通过冒号分隔切片参数 start:stop:step 来进行切片操作。
  • 切片还可以包括省略号 …,来使选择元组的长度与数组的维度相同。 如果在行位置使用省略号,它将返回包含行中元素的 ndarray。
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a,'\n')

print(a[1,:]) #第2行元素
print(a[1,...],'\n')

print(a[:,1]) # 第2列元素
print(a[...,1],'\n')

print(a[1:,:]) # 第2行及剩下的所有元素
print(a[1:,...],'\n')

print(a[:,1:]) # 第2列及剩下的所有元素
print(a[...,1:],'\n')

在这里插入图片描述

3 Numpy常用操作

numpy.reshape

numpy.reshape 函数可以在不改变数据的条件下修改形状

numpy.reshape(arr,newshape,order = ‘C’)

a = np.arange(8)
print('a:\n',a)

b = a.reshape(4,2)
print("b:\n",b)

在这里插入图片描述

numpy.transpose

numpy.transpose 函数用于对换数组的维度,numpy.ndarray.T 类似 numpy.transpose

# numpy.transpose(arr,axes)
a = np.arange(8).reshape(4,2)
print("a:\n",a)

print("对换维度:\n",np.transpose(a))

在这里插入图片描述

numpy.expand_dims

numpy.expand_dims 函数通过在指定位置插入新的轴来扩展数组形状

# numpy.expand_dims(arr,axis)
a = np.array([[1,2],[3,4]])
print("a:\n",a)
b = np.expand_dims(a,axis = 0)
print("b:\n",b)
print("数组a和数组b形状:\n",a.shape, b.shape)

在这里插入图片描述

b = np.expand_dims(a,axis = 1)
print("b:\n",b)
print("数组a和数组b形状:\n",a.shape, b.shape)

在这里插入图片描述

b = np.expand_dims(a,axis = 2)
print("b:\n",b)
print("数组a和数组b形状:\n",a.shape, b.shape)

在这里插入图片描述

numpy.squeeze

numpy.squeeze 函数从给定数组的形状中删除一维的条目

# numpy.squeeze(arr,axis)
a = np.arange(9).reshape(1,3,3)
print("a:\n",a)
b = np.squeeze(a)#去掉第一个维度
print("b:\n",b)
print("数组a和数组b形状:\n",a.shape, b.shape)

在这里插入图片描述## numpy.concatenate
numpy.concatenate 函数用于沿指定轴连接相同形状的两个或多个数组

# numpy.concatenate((a1,a2,...),axis)
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
print(np.concatenate((a,b),axis = 0)) # 按行拼接
print('\n')
print(np.concatenate((a,b),axis = 1)) # 按列拼接

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Java+Springboot+Vue+elememt美食论坛平台设计实现

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取联系🍅精彩专栏推荐订阅👇&#x1f…

07-树(Tree)结构分析

文章目录树(Tree)结构分析什么是树?树中的相关名词如何理解?什么是二叉树?什么是二叉搜索树?什么是AVL树?什么是2-3树?什么是红黑树?总结(Summary)树(Tree)结构分析 什么…

【飞桨PaddleSpeech语音技术课程】— 语音识别-流式服务

FastAPI websocket 流式语音识别服务 0. 背景 流式语音识别(Streaming ASR)或者在线语音识别(Online ASR) 是随着输入语音的数据不断增加,实时给出语音识别的文本结果。与之相对的是非实时或者离线语音识别,是传入完整的音频数据,一次给出整…

ppocrlabel简单教学

前言 给我们小白成员的快速上手ppocrlabel的指南 1. ppocr环境配置 建议是先创建一个虚拟环境 【直接参考】:https://blog.csdn.net/weixin_42708301/article/details/119864744 2. ppocrlabel环境安装 【参考文档】PaddleOCR-release-2.6\PPOCRLabel\README_c…

将STM32 内部Flash虚拟成优盘,进行IAP升级

书接上回,上篇文章已经成功的将 STM32 内部FLASH虚拟成优盘进行文件存储了。 【将 STM32 内部Flash虚拟成优盘】https://blog.csdn.net/qq_44810226/article/details/127508789 然后我们开始固件升级流程: 从上图可以看出,固件存储的位置是不…

Python-代码封装思想

继上文所将讲的pythonrequestsUnittest框架,本文将继续分享python代码的进一步封装思想,来提高代码的整体运行效率及整洁性,本文以接口测试框架为例进行讲解。 关于Unittest单元测试框架的具体使用方法链接链接(点击跳转&#xf…

MMEngine理解

MMEngine理解1 简介1.1 架构1.2 模块介绍1.2.1 核心模块与相关组件1.2.1 公共基础模块2 上手示例2.1 构建模型2.2 构建数据集和数据加载器2.3 构建评测指标2.4 构建执行器并执行任务3. 基础模块3.1 注册器(Registry)3.1.1 什么是注册器3.1.2 使用流程3.1…

OSPF路由协议(二)

作者介绍: ⭐️作者:小刘在C站 ❄️每天分享课堂笔记,一起努力,共赴美好人生! ☁️夕阳下,是最美的绽放。 目录 一.Router id 二.DR,BDR 三.DR BDR 选举过程 四.ospf 度量值 cost 代价 五.ospf 的数据…

部署vue项目到阿里云服务器

一般前端工程师只会使用npm run serve 在开发环境下验证,那么如何把npm run build 打出的包部署到服务器上进行上线呢?这篇文章就详细阐述这一流程。 1. 购买或试用阿里云服务器 作为新用户可以试用一个月阿里云服务器,阿里云官方网址如下&a…

【数据结构与算法分析】0基础带你学数据结构与算法分析07--二叉树

在学习上一章后,我们对树加以限制,如果树的度为 2,那么就称这颗树为 二叉树 (binary tree)。 二叉树的性质 在一棵二叉树上,有一些重要的性质: 第 i 层 (i∈N) 上最多有 2^(i−1) 个结点层次为 k(k∈N) 的树最多有 …

进程地址空间

目录 程序地址空间 感知虚拟地址空间的存在 进程地址空间 分页 & 虚拟地址空间 Linux2.6内核进程调度队列 程序地址空间 我们在学习C语言的时候了解过程序地址空间的分布: 需要注意的是:程序地址空间不是内存。我们在linux操作系统中通过代码来…

刷题笔记之二(字符串中找出连续最长的数字串+数组中出现次数超过一半的数字+另类加法+计算糖果+进制转换)

目录 1. 多层继承问题 2. 继承中子类的构造要引用super 3. 比较地址 4. 字符串中找出连续最长的数字串(编程题) 5. 数组中出现次数超过一半的数字(编程题) 6. 另类加法(编程题) 7. Interface 接口中定义方法 8. 实现或继…

C语言学习(二)之字符串和格式化输入/输出

文章目录一、字符串二、 输入2.1 scanf()作用2.2 两种用法三、输出3.1 printf()3.1.1 printf 四种用法3.1.2 常用输出控制符3.1.3 为什么需要输出控制符一、字符串 字符串是一个或多个字符的序列。如:“Hello World” 双引号不是字符串的一部分。仅告知编译器它括…

【学习笔记】《深入浅出Pandas》第16章:可视化

文章目录16.1 plot方法16.1.1 plot概述16.1.2 plot基础方法16.1.3 图形类型16.1.4 x轴和y轴16.1.5 图形标题16.1.6 字体大小16.1.7 线条样式16.1.8 背景辅助线16.1.9 图例16.1.10 图形大小16.1.11 色系16.1.12 绘图引擎16.1.14 图形叠加16.1.15 颜色的表示16.1.16 解决图形中的…

量子笔记:量子计算 toy python implementation from scratch

目录 0. 概要 1. 量子比特表示:用二维张量表示 2. 张量积的实现 2.1 用scipy.linalg.kron()实现张量积 2.2 用张量积计算双量子系统的基 3. 多量子系统基向量表示和生成 3.1 Helper function: bin_ext 3.2 多量子系统的基的生成 3.3 numpy.matrix numpy.m…

基于多尺度注意力网络单图像超分(MAN)

引言 Transformer的自注意力机制可以进行远距离建模,在视觉的各个领域表现出强大的能力。然而在VAN中使用大核分解同样可以得到很好的效果。这也反映了卷积核的发展趋势,从一开始的大卷积核到vgg中采用堆叠的小卷积核代替大卷积核。 上图展现了MAN网络在…

使用T0,方式2,在P1.0输出周期为400µs,占空比为4:1的矩形脉冲,要求在P1.0引脚接有虚拟示波器,观察P1.0引脚输出的矩形脉冲波形

大家学过一段时间的单片机了,今天我们来说说单片机里的定时器,又叫计数器。首先,我们通过案例来了解一下什么是定时器。 【例】使用T0,方式2,在P1.0输出周期为400s,占空比为4:1的矩形脉冲&…

如何编写优秀的测试用例,建议收藏和转发

1、测试点与测试用例 测试点不等于测试用例,这是我们首先需要认识到的。 问题1:这些测试点在内容上有重复,存在冗余。 问题2:一些测试点的测试输入不明确,不知道测试时要测试哪些。 问题3:总是在搭相似…

串口通信协议【I2C、SPI、UART、RS232、RS485、CAN】

(1)I2C 集成电路互连总线接口(Inter IC):同步串行半双工传输总线,连接嵌入式处理器及其外围器件。 支持器件:LCD驱动器、Flash存储器 特点: ①有两根传输线(时钟线SCL、双向数据线SDA&#…

python基础19-36题

题目: 代码十九二十二十一二十二二十三二十四二十五二十六二十七二十八二十九三十三十一三十二三十三三十四三十五三十六十九 birthday int(input(“请输入生日日期:”)) Set1 [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31] Set2 [2,3,6,7,10,11,…