ocr识别过程中的python知识点总结

一、Python [::-1]的简单理解与用法

从结果上来看,[::-1]的作用是对列表进行翻转,比方说:

a = [1, 2, 3, 4, 5]
print(a[::-1])

b = "12345"
print(b[::-1])

输出:

[5, 4, 3, 2, 1]
54321

可以发现这个东西的用法和reversed函数是相同的,只不过更为简洁:

a = [1, 2, 3, 4, 5]
print(list(reversed(a)))

b = "12345"
print("".join(reversed(b)))

输出:

[5, 4, 3, 2, 1]
54321

那么这个东西的原理是什么呢?一般来说,我们见过一个冒号的情况比较多,用来做列表切片:

a = [1, 2, 3, 4, 5]
print(a[:-1])
print(a[1:])
print(a[:])

输出:

[1, 2, 3, 4]
[2, 3, 4, 5]
[1, 2, 3, 4, 5]

多一个冒号的话,新冒号后面的数字表什么呢?其实是表步长,比如:

a = [1, 2, 3, 4, 5]
print(a[:-1])
print(a[:-1:])
print(a[:-1:1])
print(a[:-1:2])

输出:

[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 3]


步长是正数的话,[a:b]是从a到b,往右读取,b应该比a大;而步长如果改成负数,[a:b]的含义仍然是从a到b,只是往左读取,所以此时b应该比a小,比如:

print(a[3:0:-1])

输出:

[4, 3, 2]

自然而然的,如果不指定a,b,那么处理的范围是整个列表步长为-1,表示整个列表从右往左读取,即翻转数组

二、np.argsort()用法:
np.argsort(a, axis=-1, kind='quicksort', order=None)
函数功能:将a中的元素从小到大排列,提取其在排列前对应的index(索引)输出


1、一维数组

先定义一个array数组x,然后使用函数

import numpy as np
x=np.array([1,4,3,-1,6,9])
y=np.argsort(x)
print('一维数组的排序结果:{}'.format(y))
输出结果如下:

一维数组的排序结果:[3 0 2 1 4 5]
中间过程详细解释:
①输入为: [1,4,3,-1,6,9],对应索引为:[0,1,2,3,4,5],即
x[0]=1,x[1]=4,x[2]=3,x[3]=-1,x[4]=6,x[5]=9

②排序结果为: [-1,1,3,4,6,9]
argsort()是提取排序结果元素在排列前对应的index(索引)输出。
根据排序前x[3]=-1可知,排序结果中,元素-1对应排序前的索引3;
根据排序前x[5]=9可知,排序结果中,元素9对应排序前的索引5;
以此类推,输出 排序后元素在排列前对应的index(索引):
即:[3,0,2,1,4,5]


三、np.linalg.norm() 是什么
linalg=linear+algebra ,也就是线性代数的意思,是numpy 库中进行线性代数运算方面的函数。

使用 np.linalg 这个模块,可以计算范数、逆矩阵、求特征值、解线性方程组以及求解行列式等。

本文要讲的 np.linalg.norm()  ,就是计算范数的意思,norm 则表示 范数

二、什么是范数
先来了解一下什么是范数,这有利于函数的使用。

首先要知道,范数是一个标量,它是对向量(或者矩阵)的度量

范数包含 0 范数、1范数、2范数........ P范数。

其中:

0 范数,表示向量中非零元素的个数。

1 范数,表示向量中各个元素绝对值之和。

2 范数,表示向量中各个元素平方和 的 1/2 次方,L2 范数又称 Euclidean 范数或者 Frobenius 范数。

p 范数,表示向量中各个元素绝对值 p 次方和 的 1/p 次方。

三、np.linalg.norm() 的用法
1.np.linalg.norm() 的官方文档
有了基础知识,我们来看看np.linalg.norm() 的用法

norm(x, ord=None, axis=None, keepdims=False)

其中:

x,表示要度量的向量

ord,表示范数的种类,默认为2 范数。ord = np.inf 表示无穷范数

axis, axis=0 表示按列向量来进行处理,求多个列向量的范数; axis =1 表示按行向量来进行处理,求多个行向量的范数

keepdims:表示是否保持矩阵的二位特性,True表示保持,False表示不保持,默认为False

注意:对于向量而言,有所不同

ord=None,表示求整体的矩阵元素平方和,再开根号
ord=1,表示求列和的最大值
ord=2,|λE-ATA|=0,求特征值,然后求最大特征值的算术平方根
ord为无穷大,表示求行和的最大值


四、torch.argmax()函数

import torch

x = torch.randn(2, 4)
print(x)
'''
tensor([[ 1.2864, -0.5955,  1.5042,  0.5398],
        [-1.2048,  0.5106, -2.0288,  1.4782]])
'''

# y0表示矩阵dim=0维度上(每一列)张量最大值的索引
y0 = torch.argmax(x, dim=0)
print(y0)
'''
tensor([0, 1, 0, 1])
'''

# y1表示矩阵dim=1维度上(每一行)张量最大值的索引
y1 = torch.argmax(x, dim=1)
print(y1)
'''
tensor([2, 3])
'''
五、python 内置函数之isinstance 语法:isinstance(object,type)

作用:来判断一个对象是否是一个已知的类型

其第一个参数(object)为对象,第二个参数(type)为类型名(int…)或类型名的一个列表((int,list,float)是一个列表)。其返回值为布尔型(True or flase)。
函数,计算传入字符串的个数
if isinstance(s,str): #args1: 数据 args2:数据类型
pass
若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中类型名之一相同即返回True。

六、Python——连接数据库操作

#引入decimal模块
import pymysql
 
#连接数据库
db=pymysql.connect(host='localhost',user='root',password='1234',charset='utf8')
 
#创建一个游标对象(相当于指针)
cursor=db.cursor()
 
#执行创建数据库语句
cursor.execute('create schema wzg default charset=utf8;')
cursor.execute('show databases;')
 
#fetchone获取一条数据(元组类型)
print(cursor.fetchone())
#现在指针到了[1]的位置
 
#fetchall获取全部数据(字符串类型)
all=cursor.fetchall()
for i in all:
    print(i[0])
 
#关闭游标和数据库连接
cursor.close()
db.close()

七、python中list(set(a))方法

list(set(a))方法之python

list(set(a))方法
set方法是对元素进行去重,处理之后是一个字典形式,使用list是将其转化为列表

a = ['j','k','f',2,5,3,6,4,7,8,9,6,7,3,2,'j','k']

print((set(a)))

{2, 3, 4, 5, 6, 'f', 'j', 7, 8, 9, 'k'}  字典
print(b=list(set(a)))
[2, 3, 4, 5, 6, 7, 'j', 8, 9, 'k', 'f']  列表


八、python中lower的用法_Python lower()函数

Python中lower() 函数的作用是把一个字符串中所有大写形式的字符变为小写形式,并生成源字符串的一个副本

lower() 函数在很多场合起着重要的作用,如有时我们需要判断一个字符串中是否包含另外一个子串,判断文件是否是特定后缀结尾的等,这时我们有必要把源字符串变成小写形式后再判断。毕竟,在实际应用过程中,用户可能使用了大小写不同的形式来表现字符串,将字符串统一变为小写形式能更加准确的进行判别。

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

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

相关文章

Beta冲刺随笔-DAY4-橘色肥猫

这个作业属于哪个课程软件工程A这个作业要求在哪里团队作业–站立式会议Beta冲刺作业目标记录Beta冲刺Day4团队名称橘色肥猫团队置顶集合随笔链接Beta冲刺笔记-置顶-橘色肥猫-CSDN博客 文章目录 SCRUM部分站立式会议照片成员描述 PM报告项目程序/模块的最新运行图片…

设计模式-结构型模式之装饰者设计模式

文章目录 六、装饰者模式 六、装饰者模式 装饰者模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。它是作为现有的类的一个包装。 装饰类和被装饰类可以独立发展,不会相互耦合,装饰者模…

力扣题:字符串的反转-11.22

力扣题-11.22 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:541. 反转字符串 II 解题思想:进行遍历翻转即可 class Solution(object):def reverseStr(self, s, k):""":type s: str:type k: int:rtype: str"&quo…

DAPP开发【05】ERC20/ERC721简介

ERC20是以太坊上最受欢迎和广泛使用的代币标准之一。ERC20代币符合一组通用规则,包括代币的转账方法和余额查询方法。这些规则使得 ERC20 代币易于与钱包、交易所和其他合约进行集成和交互。 ERC20标准规定了代币合约必须实现以下6个函数: balanceOf(ad…

【Python】tensorflow学习的个人纪录(2)

actor.learn(s, a, td_error)def learn(self, s, a, td):s s[np.newaxis, :]feed_dict {self.s: s, self.a: a, self.td_error: td}_, exp_v self.sess.run([self.train_op, self.exp_v], feed_dict)return exp_v输入变量的数值: 步进: []---->[…

JavaWeb(二)

一、SQL简介 结构化查询语言,一门操作关系型数据库的编程语言。英文:Structured Query Language,简称 SQL。 二、Mysql和Oracle关于区分大小写 MySQL在Windows下都不区分大小写。 oracle中分为两种情况,单纯的sql语句不区分大小…

漏洞扫描服务是什么

漏洞扫描服务是维护网络安全的重要一环。通过定期或实时的漏洞扫描,组织可以及时发现并修复可能存在的安全威胁,增强自身网络的安全性。在选择漏洞扫描服务时,需要明确自身的需求和目标,并选择合适的工具和服务提供商。只有这样&a…

在一个没有超级用户的mongodb 生产库上如何添加超级用户

说来这个问题,都觉得不可思议,一个数据库怎么没有超级用户呢,我们知道,MYSQL,PG,ORACLE等,创建好后,都有一个默认的超级用户,MONGODB也有超级用户,但需要自己…

前端分片上传

前端分片上传是一种将大文件分成若干个小块进行上传的方式,以解决大文件上传时网络不稳定或上传速度慢的问题。下面是前端分片上传的基本步骤: 使用JavaScript读取文件,将文件分成若干块。可以使用File API来实现这个功能。使用XMLHttpReque…

使用VC++实现锐化处理(使用Sobel算子、Prewitt算子、Isotropic算子)

使用VC实现锐化处理(使用Sobel算子、Prewitt算子、Isotropic算子) 获取源工程可访问gitee可在此工程的基础上进行学习。 该工程的其他文章: 01- 一元熵值、二维熵值 02- 图像平移变换,图像缩放、图像裁剪、图像对角线镜像以及图像…

Vxworks6.9的在线gdb调试(仿真内核和板载内核)

创作目的:归纳总结常用的技巧和方法,方便自己后续查阅重点节省时间。 一、仿真内核的gdb调试 1、新建DKM工程,选择sim的BSP包 2、DKM工程中添加c文件并编辑入口函数 3、新建vxworks远端系统 4、显示系统起来之后进行加载.out 5、选择Debug模…

基于hadoop下的Kafka分布式安装

简介 Kafka是一种分布式流处理平台,它具有高吞吐量、可扩展性、可靠性、实时性和灵活性等优点。它能够支持每秒数百万条消息的传输,并且可以通过增加节点来增加吞吐量和存储容量。Kafka通过将数据复制到多个节点来实现数据冗余和高可用性,即使…

Linux脚本awk命令

目录 一. awk命令简介 1. awk版本 2. awk与vim的区别 3. awk与sed的区别 4. awk工作原理 5. awk格式 6. awk常用选项 二. awk基础用法 1. awk基础用法 2. BEGIN和END语句块 3. 指定分隔符 4. 首尾关键字 三. awk内置变量 1. FS变量 2. OFS变量 3. RS变量 4. NF…

代码随想录算法训练营第五十三天 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划

目录 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 动态规划 1143.最长公共子序列 题目链接:1143. 最长公共子序列 (1)dp[ i ][ j ] 表示 text1 前 i 个元素、text2 前 j 个元素的最长公共子序列的长度; (2&a…

在 Linux 上修改 Oracle 控制文件、日志文件和数据文件的目录的脚本

以下是一个交互式的 Bash 脚本示例,用于在 Linux 上修改 Oracle 数据库控制文件、日志文件和数据文件的目录。脚本会要求您输入要修改的路径,并根据输入的路径执行相应的修改操作。 #!/bin/bash# 修改以下变量以匹配您的 Oracle 数据库设置 ORACLE_SID&…

30、LCD1602

LCD1602介绍 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符 显示容量:162个字符,每个字符为5*7点阵 …

理解SpringIOC和DI第一课(Spring的特点),IOC对应五大注解,ApplicationContext vs BeanFactory

Spring是一个包含众多工具等Ioc容器 对象这个词在Spring范围内,称为bean Spring两大核心思想 1.IOC (IOC是控制反转,意思是控制权反转-控制权(正常是谁用这个对象,谁去创建,)-控制对象的控制权&#xf…

Vue2 模版编译及生命周期钩子 总结归纳

一. 在beforeCreate生命周期钩子被调用之前,其实还有两个阶段: (1) 编译阶段。 如果使用了构建步骤,例如使用了单文件组件【.vue文件】,则会在此阶段进行: 对模板进行解析和编译,并生成渲染函数。编译过程…

轻量封装WebGPU渲染系统示例<41>- 前向渲染的雾(Fog)效果(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/FogTest.ts 当前示例运行效果: 此示例基于此渲染系统实现,当前示例TypeScript源码如下: export class FogTest {private mRscene new Rend…

优化你的计算机性能:如何根据 CPU 占用率决定硬件升级

优化你的计算机性能:如何根据 CPU 占用率决定硬件升级 一、引言二、CPU 占用率的意义与影响三、监测和评估 CPU 占用率四、判断硬件升级需求的依据五、硬件升级方案和建议六、总结 一、引言 计算机性能优化是提升计算机系统整体效能的过程,它对于用户和…