numpy,matplotilib学习(菜鸟教程)

 所有内容均来自于:

NumPy 教程 | 菜鸟教程

Matplotlib 教程 | 菜鸟教程

numpy模块

numpy.nditer

NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式。

  • for x in np.nditer(a, order='F'):Fortran order,即是列序优先;
  • for x in np.nditer(a, order='C'):C order,即是行序优先;

 

修改数组中元素的值

nditer 对象有另一个可选参数 op_flags默认情况下,nditer 将视待迭代遍历的数组为只读对象(read-only),为了在遍历数组的同时,实现对数组元素值的修改,必须指定 readwrite 或者 writeonly 的模式。

numpy.ndarray.flat

numpy.ndarray.flat 是一个数组元素迭代器

numpy.ndarray.flatten

numpy.ndarray.flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组,格式如下:

ndarray.flatten(order='C')

参数说明:

  • order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'K' -- 元素在内存中的出现顺序。

numpy.ravel

numpy.ravel() 展平的数组元素,顺序通常是"C风格",返回的是数组视图(view,有点类似 C/C++引用reference的意味),修改会影响原始数组。

该函数接收两个参数:

numpy.ravel(a, order='C')

参数说明:

  • order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'K' -- 元素在内存中的出现顺序。

连接数组

函数描述
concatenate连接沿现有轴的数组序列
stack沿着新的轴加入一系列数组。
hstack水平堆叠序列中的数组(列方向)
vstack竖直堆叠序列中的数组(行方向)

分割数组

函数数组及操作
split将一个数组分割为多个子数组
hsplit将一个数组水平分割为多个子数组(按列)
vsplit将一个数组垂直分割为多个子数组(按行)

数组元素的添加与删除

函数元素及描述
resize返回指定形状的新数组
append将值添加到数组末尾
insert沿指定轴将值插入到指定下标之前
delete删掉某个轴的子数组,并返回删除后的新数组
unique查找数组内的唯一元素

NumPy 字符串函数

以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作。 它们基于 Python 内置库中的标准字符串函数。

这些函数在字符数组类(numpy.char)中定义。

函数描述
add()对两个数组的逐个字符串元素进行连接
multiply()返回按元素多重连接后的字符串
center()居中字符串
capitalize()将字符串第一个字母转换为大写
title()将字符串的每个单词的第一个字母转换为大写
lower()数组元素转换为小写
upper()数组元素转换为大写
split()指定分隔符对字符串进行分割,并返回数组列表
splitlines()返回元素中的行列表,以换行符分割
strip()移除元素开头或者结尾处的特定字符
join()通过指定分隔符来连接数组中的元素
replace()使用新字符串替换字符串中的所有子字符串
decode()数组元素依次调用str.decode
encode()数组元素依次调用str.encode

最值函数

numpy.amin() 和 numpy.amax():从数组中查找最小元素,最大元素

numpy.amin() 用于计算数组中的元素沿指定轴的最小值。

numpy.amin(a, axis=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)

参数说明:

  • a: 输入的数组,可以是一个NumPy数组或类似数组的对象。
  • axis: 可选参数,用于指定在哪个轴上计算最小值。如果不提供此参数,则返回整个数组的最小值。可以是一个整数表示轴的索引,也可以是一个元组表示多个轴。
  • out: 可选参数,用于指定结果的存储位置。
  • keepdims: 可选参数,如果为True,将保持结果数组的维度数目与输入数组相同。如果为False(默认值),则会去除计算后维度为1的轴。
  • initial: 可选参数,用于指定一个初始值,然后在数组的元素上计算最小值。
  • where: 可选参数,一个布尔数组,用于指定仅考虑满足条件的元素。

numpy.argmax() 和 numpy.argmin()

numpy.argmax() 和 numpy.argmin()函数分别沿给定轴返回最大和最小元素的索引

条件筛选函数

numpy.where()

numpy.where() 函数返回输入数组中满足给定条件的元素的索引。

numpy.nonzero()

numpy.nonzero() 函数返回输入数组中非零元素的索引。

NumPy 线性代数

NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,可以看看下面的说明:

函数描述
dot两个数组的点积,即元素对应相乘。
vdot两个向量的点积
inner两个数组的内积
matmul两个数组的矩阵积
determinant数组的行列式
solve求解线性矩阵方程
inv计算矩阵的乘法逆矩阵

NumPy 矩阵库(Matrix)

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。

1.matlib.empty()

matlib.empty() 函数返回一个新的矩阵,

2.numpy.matlib.zeros()

numpy.matlib.zeros() 函数创建一个以 0 填充的矩阵。

3.numpy.matlib.ones()

numpy.matlib.ones()函数创建一个以 1 填充的矩阵。

4.numpy.matlib.eye()

numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零。

5.numpy.matlib.identity()

numpy.matlib.identity() 函数返回给定大小的单位矩阵。单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为 1,除此以外全都为 0。

6.numpy.matlib.rand()

numpy.matlib.rand() 函数创建一个给定大小的矩阵,数据是随机填充的。

NumPy IO

Numpy 可以读写磁盘上的文本数据或二进制数据。

NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。

npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。

常用的 IO 函数有:

  • load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中。
  • savez() 函数用于将多个数组写入文件,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npz 的文件中。
  • loadtxt() 和 savetxt() 函数处理正常的文本文件(.txt 等) 【txt文件里保存的是数字才可】
    例如:

 Matplotlib 绘图标记

fmt 参数

fmt 参数定义了基本格式,如标记、线条样式和颜色。

fmt = '[marker][line][color]'
例如 o:r,o 表示实心圆标记,: 表示虚线,r 表示颜色为红色。

绘图过程如果我们想要给坐标自定义一些不一样的标记,就可以使用 plot() 方法的 marker 参数来定义。

例如:

import matplotlib.pyplot as plt
import numpy as np

ypoints = np.array([1,3,4,5,8,9,6,1,3,4,5,2,4])

plt.plot(ypoints, marker = '^')
plt.show()

marker 可以定义的符号如下:

标记符号描述
"."

m00

","

m01

像素点
"o"

m02

实心圆
"v"

m03

下三角
"^"

m04

上三角
"<"

m05

左三角
">"

m06

右三角
"1"

m07

下三叉
"2"

m08

上三叉
"3"

m09

左三叉
"4"

m10

右三叉
"8"

m11

八角形
"s"

m12

正方形
"p"

m13

五边形
"P"

m23

加号(填充)
"*"

m14

星号
"h"

m15

六边形 1
"H"

m16

六边形 2
"+"

m17

加号
"x"

m18

乘号 x
"X"

m24

乘号 x (填充)
"D"

m19

菱形
"d"

m20

瘦菱形
"|"

m21

竖线
"_"

m22

横线
0 (TICKLEFT)

m25

左横线
1 (TICKRIGHT)

m26

右横线
2 (TICKUP)

m27

上竖线
3 (TICKDOWN)

m28

下竖线
4 (CARETLEFT)

m29

左箭头
5 (CARETRIGHT)

m30

右箭头
6 (CARETUP)

m31

上箭头
7 (CARETDOWN)

m32

下箭头
8 (CARETLEFTBASE)

m33

左箭头 (中间点为基准)
9 (CARETRIGHTBASE)

m34

右箭头 (中间点为基准)
10 (CARETUPBASE)

m35

上箭头 (中间点为基准)
11 (CARETDOWNBASE)

m36

下箭头 (中间点为基准)
"None", " " or ""没有任何标记
'$...$'

m37

渲染指定的字符。例如 "$f$" 以字母 f 为标记。

 绘图过程如果我们自定义线的样式,包括线的类型、颜色和大小等。

线的类型

线的类型可以使用 linestyle 参数来定义,简写为 ls。

线的颜色

线的颜色可以使用 color 参数来定义,简写为 c。

线的宽度

线的宽度可以使用 linewidth 参数来定义,简写为 lw,值可以是浮点数,如:12.05.67 等。

多条线

plot() 方法中可以包含多对 x,y 值来绘制多条线。

grid() 方法

我们可以使用 pyplot 中的 grid() 方法来设置图表中的网格线。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

离职潮下的企业信息安全挑战及防范策略

随着社会经济环境的快速变化&#xff0c;企业员工流动性加剧&#xff0c;尤其在离职潮下&#xff0c;企业不仅要关注人力资源配置与团队稳定性&#xff0c;更要重视由此引发的信息安全挑战。离职员工带走的不仅仅是职位空缺&#xff0c;更可能携带着大量内部敏感信息&#xff0…

分类预测 | Matlab实现ABC-LSSVM人工蜂群算法优化最小二乘支持向量机数据分类预测

分类预测 | Matlab实现ABC-LSSVM人工蜂群算法优化最小二乘支持向量机数据分类预测 目录 分类预测 | Matlab实现ABC-LSSVM人工蜂群算法优化最小二乘支持向量机数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现ABC-LSSVM人工蜂群算法优化最小二乘支…

基于单片机便携式太阳能充电器系统设计

**单片机设计介绍&#xff0c;基于单片机便携式太阳能充电器系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机便携式太阳能充电器系统设计概要主要涉及利用单片机作为核心控制器件&#xff0c;结合太阳能充电技术和便携式…

基于SpringBoot+微信小程序的智慧医疗线上预约问诊小程序

一、项目背景介绍&#xff1a; 近年来&#xff0c;随着互联网技术的不断发展&#xff0c;人们的生活和工作方式也在逐渐改变。其中&#xff0c;医疗行业也受到了极大的影响。由于传统医疗行业存在着很多问题&#xff0c;例如就医难、看病贵等&#xff0c;因此出现了许多新型医疗…

窜天猴AI直播软件功能列表

迎新点名&#xff1a;新进直播间的用户随机指数级自由组合话术&#xff0c;并播报出来 礼物/关注&#xff1a;用户送礼物、关注以及灯牌事件同上根据话术指数级随机组合出来评论区关键字回复&#xff1a;用户评论后&#xff0c;根据预设置的关键字进行语音回复 自动寻品&…

蓝桥杯算法心得——字典树考试(贡献度+前缀和)

大家好&#xff0c;我是晴天学长&#xff0c;贡献度的题&#xff0c;找到技巧非常重要&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .字典树考试 字典树考试 问题描述 蓝桥学院最近教学了字典树这一数…

C51_串口通信

通信协议介绍 并行通信和串口通信 并行通信的各个位同时传输&#xff0c;每一位数据都需要一条传输线。优点是传输快&#xff0c;适合短距离传输&#xff0c;但是成本高串行通信将数据分成位的形式&#xff0c;在一条传输线上逐个传输 单工、半双工和全双工数据传输 单工数…

C语言之联合体

与结构体一样&#xff0c;联合体也是由多个成员组成&#xff0c;但是编译器只为最大的成员分配足够的空间&#xff0c;联合体的所有成员共用一块空间&#xff0c;所以联合体也叫共用体。 1.声明&#xff1a;类似结构体的声明&#xff0c;只是名字是union不是struct。声明并计算…

大模型学习笔记一

前言 随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了学习机器学习&#xff0c;本文就介绍了机器学习的基础内容。 一、AI是什么&#xff1f; 二、大模型能干什么 大模型&#xff0c;全称「大语言模型」&#xff0c;英文「Large…

Git 配置BCompare工具

一、Git配置BCompare工具 1、安装BCompare工具 下载BCompare安装包&#xff0c;打开安装包直接安装即可&#xff0c;如下&#xff1a; 2、禁止BCompare访问网络 网络进出站进行配置&#xff0c;限制BCompare访问网络&#xff0c;如果不进行上网限制&#xff0c;可能存在被封的…

ubuntu 23 安装maven

要在 Ubuntu 23 系统上安装 Maven&#xff0c;请遵循以下步骤&#xff1a; **1. ** 确保已安装 Java Development Kit (JDK): Maven 需要 Java 环境才能运行。确认您的系统已经安装了 JDK 8 或更高版本。如果尚未安装&#xff0c;可以通过以下命令安装 OpenJDK&#xff1a; s…

python学习笔记——类

1. 类和对象**** 类、类属性、类方法不需要实例化就可以直接访问 实例相关&#xff0c;如实例属性、实例方法必须实例化后才可以访问 1.1. 类、类属性、实例属性、私有属性**** 1.1.1. 定义**** 类就是拥有相同属性和功能对象的集合 动物&#xff1a;猫、狗、鸡 人类&…

HTML+CSS+JavaScript网页制作案例教程第2版-黑马程序员-第7章动手实践

7.6 动手实践 学习完前面的内容&#xff0c;下面动手实践一下吧。 请结合给出的素材&#xff0c;运用元素的浮动和定位实现图7-49所示的“焦点图”效果。 链接&#xff1a;https://pan.baidu.com/s/1H98ySBSkd8h3IRA19AV2mw?pwd1024 提取码&#xff1a;1024 index.html <…

Jenkins安装了locale汉化插件后出现部分翻译,部分没翻译的情况

1. Default Language中设定“zh_CN”简体中文&#xff0c;"zh_TW"繁体中文。2. 插件“Locale plugin”和“Localization: Chinese (Simplified)”不安装不好使。3. “Ignore browser preference and force this language to all users”必须选上。4. 简体中文设定后&…

[StartingPoint][Tier1]Responder

Important 由于靶机IP是动态的,所以这里需要手动解析 # echo "<靶机IP> unika.htb">>/etc/hosts //10.10.16.59/testshare到底是什么? SMB&#xff08;Server Message Block&#xff09;是一种用于在计算机之间共享文件、打印机和其他资源的网络协议&…

Qt实现无边框圆角窗口

我们在使用QDialog的时候许多场景下都不需要默认的标题栏&#xff0c;这时候我们需要设置他的标志位。 this->setWindowFlags(Qt::FramelessWindowHint);由于现代的窗口风格&#xff0c;我们一般会设置窗口为圆角边框的样式&#xff0c;我们可以使用qss的方式来进行设置。 …

Mac怎么调大音频音量?

Mac怎么调大音频音量&#xff1f;在使用 Mac 电脑时&#xff0c;有时可能会发现音频的音量不够大&#xff0c;特别是在观看视频、听音乐或进行视频会议时。不过&#xff0c;幸运的是&#xff0c;Mac 提供了多种方法来调大音频音量&#xff0c;让您更好地享受音乐和视频的乐趣。…

基于SpringBoot+微信小程序的失物招领小程序

一、项目背景介绍&#xff1a; 我们基于Spring Boot和微信小程序开发的失物招领小程序旨在提供一个便捷的平台&#xff0c;帮助用户在失去物品或找到物品时能够迅速发布或查询相关信息。随着城市化进程的加速和人口的增长&#xff0c;失物招领成为了一个常见的需求&#xff0c;…

产品推荐 | 基于VIRTEX UltraScale+系列的 FACE-VU3P-B高性能FPGA开发平台

01、产品概述 FACE-VU3P-B高性能FPGA开发平台是FACE系列的新产品。FACE-VU3P-B搭载有16nm工艺的VIRTEX UltraScale系列主器件XCVU3P。该主器件具有丰富的FPGA可编程逻辑资源&#xff0c;其资源量高于常用的V7-690器件&#xff0c;并且其性能远远高于V7-690器件。 平台板载有丰…

【AI-3】Transformer

Transformer? Transformer是一个利用注意力机制来提高模型训练速度的模型&#xff0c;因其适用于并行化计算以及本身模型的复杂程度使其在精度和性能上都要高于之前流行的循环神经网络。 标准的Transformer结构如下图所示&#xff08;图来自知乎-慕文&#xff09;&#xff0c…