- 博客(59)
- 收藏
- 关注
原创 MySQL与Python的连接
我们可以使用或者pymysql三方库来接入 MySQL 数据库并实现数据持久化操作。推荐大家使用纯 Python 的三方库pymysql,因为它更容易安装成功。
2025-05-14 14:02:31
963
原创 MySQL中的索引
索引是关系型数据库中用来提升查询性能最为重要的手段。关系型数据库中的索引就像一本书的目录,我们可以想象一下,如果要从一本书中找出某个知识点,但是这本书没有目录,这将是一件多么可怕的事情!创建索引虽然会带来存储空间上的开销,但是在牺牲空间后换来的查询时间的减少也是非常显著的。对于MySQL 8.0 版本的 InnoDB 存储引擎来说,它支持三种类型的索引,分别是 B+ 树索引、全文索引和 R 树索引。
2025-05-13 09:00:00
728
原创 MySQL中的视图、函数和过程
对于互联网产品开发,我们一般建议让数据库只做好存储,复杂的运算和处理交给应用服务器上的程序去完成,如果应用服务器变得不堪重负了,我们可以比较容易的部署多台应用服务器来分摊这些压力。过程(又称存储过程)是事先编译好存储在数据库中的一组 SQL 的集合,调用过程可以简化应用程序开发人员的工作,减少与数据库服务器之间的通信,对于提升数据操作的性能也是有帮助的。但是MySQL 中的函数是可以执行 SQL 语句的。简单的说,视图就是虚拟的表,但与数据表不同的是,数据表是一种实体结构,而视图是一种虚拟结构。
2025-05-12 09:00:00
729
原创 MySQL中的Json函数与窗口函数
json类型有两种:分别为为什么要引入json类型?现在很多产品的用户登录都支持多种方式,例如手机号、微信、QQ、新浪微博等,但是一般情况下我们又不会要求用户提供所有的这些信息,那么用传统的设计方式,就需要设计多个列来对应多种登录方式,可能还需要允许这些列存在空值,这显然不是很好的选择;另一方面,如果产品又增加了一种登录方式,那么就必然要修改之前的表结构,这就更让人痛苦了。但是,有了 JSON 类型,刚才的问题就迎刃而解了,我们可以做出如下所示的设计。对于json查询的SQL语句与之前的不同,使用和。
2025-05-11 18:50:26
846
原创 关于解决MySQL的常见问题
这有可能是因为MySQL服务没有开启。打开系统配置(直接搜索即可),查看MySQL服务是否开启。此时显示的是已停止。确定是这个问题。现在打开计算机管理(直接搜索即可)。找到MySQL右击选择启动。现在再去输入密码即可使用服务。
2025-05-11 17:51:52
196
1
原创 MySQL的权限赋予与收回
数据库服务器通常包含了非常重要的数据,可以通过访问控制来确保这些数据的安全。可以为指定的用户授予访问权限或者从指定用户处召回指定的权限。
2025-05-10 09:00:00
163
原创 MySQL的插入、删除和修改
使用insert方法进行插入,插入的方式包括:插入完整的行、插入行的一部分、插入多行、插入查询的结果。因为在上一章中我们建立college表时,第一个col_id是自增字段,所有可以是使用default默认值。也可以针对不同的列进行插入(选择性插入)推荐大家使用下面这种做法,指定为哪些字段赋值,这样做可以不按照建表时设定的字段顺序赋值,可以按照values前面的元组中给定的字段顺序为字段赋值,但是需要注意,除了允许为null和有默认值的字段外,其他的字段都必须要一一列出并在values。
2025-05-09 09:30:42
445
原创 MySQL数据库创建、删除、修改
我们以学校体系进行建表。将数据库命名为create database相同四个关键的实体分别是学院、老师、学生和课程,其中,学生跟学院是从属关系,这个关系从数量上来讲是多对一关系,因为一个学院可以有多名学生,而一个学生通常只属于一个学院;同理,老师跟学院的从属关系也是多对一关系。一名老师可以讲授多门课程,一门课程如果只有一个授课老师的话,那么课程跟老师也是多对一关系;如果允许多个老师合作讲授一门课程,那么课程和老师就是多对多关系。简单起见,我们将课程和老师设计为多对一关系。
2025-05-08 20:20:03
1079
原创 QtDesigner入门
简单来说,当我们写好一段代码,已经实现了某些我们想要实现的功能后。希望实现的每一个功能可以可视化,通过按钮等功能完成人机交互。Qt Designer 是 Qt 框架提供的可视化界面设计工具,支持通过拖放控件快速构建图形用户界面(GUI),适用于 C++、Python(PyQt/PySide)等语言开发。接下来我以pyqt5举例(Anaconda)首先:你需要先创建一个环境(或者在你已有的环境下)安装pyqt5。此时你就已经创建好了一个名为Qt的环境了。如果你下次想打开这个环境:第二步:
2025-04-23 15:32:46
417
原创 直线检测(持续更新)
霍夫变换是图像处理中的一种特征提取技术,通过投票算法检测识别具有特定几何形状的物体。我们这篇文章,主要对直线进行检测。1.2 Hough变换原理我们看见直角坐标系中有两个点A B,他们构成了一条直线y=kx=b。知道了斜率k和截距b就可以确定一条直线。我们可以将这个坐标系看成一个笛卡尔空间。往深处思考一下,其实x就是我们的输入,k和b就是参数,y就是输出。就是当我们知道一个x,就一定知道直线上对于的点。接下来,我们就要将笛卡尔空间转化为霍夫空间。其实就是需要将直角坐标系上的点转化为极坐标上的点。
2024-10-17 14:42:05
2797
原创 骨架提取(持续更新)
骨架提取是图像处理或计算机视觉中的一种技术,用于从二值化图像中提取物体的中心线或轮廓,通常称为“骨架”或“细化图像”。这一技术主要用于简化形状表示,同时保留物体的拓扑结构。这里我们强调了,是对二值化图像中进行提取。
2024-10-13 21:11:07
1560
1
原创 RGB HSV LAB 灰度图之间的爱恨情仇(持续更新)
灰度图只有一个亮度通道,我们常常会看见将RGB图转化为灰度图。灰度可以理解为图像中像素的亮度值。在灰度图中,最黑的部分用灰度值 0 表示,最白的部分用灰度值 255 表示(对于 8 位灰度图像而言)。介于两者之间的灰度值则代表了不同程度的灰色。例如,灰度值为 128 的像素呈现出中等亮度的灰色。首先了解HSV中三个字母分别代表什么含义:H(Hue)色相,S(Saturation)饱和度,V(Value)明度/亮度。
2024-10-12 10:34:34
1348
原创 多分类问题(Softmax Classifier)
之前提到的分类任务都是二分类,也就是是或否。本节提到的是多分类任务。此节会运用到之前提到的MNIST,也是就数字分类任务,此时就是多分类(10)了。
2024-08-14 17:37:35
1338
原创 卷积神经网络(Basic CNN)(1)
在之前提到,将一个张量对其进行全连接后,会出现例如第一行的最后一位与第二行的第一位最终会连接在一起,丧失了一些原有的空间信息。二维卷积,按照其原始的空间结构进行保存。目标:明确输入和输出的维度(方便我们进行不同的卷积操作)方法:构建特征提取器feature extraction,构建分类器classification(全连接)首先由于全连接会丢失空间信息,因此我们通常先对其进行特征提取,使用到卷积,下采样等(其中一些步骤信息可见上图)。最后对其进行全连接,方便其进行分类操作。
2024-08-13 18:14:14
969
原创 加载数据集(Dataset and Dataloader)
dataset主要是用于构造数据集(支持索引),dataloader可以拿出一个mini-batch供我们快速使用。
2024-07-19 10:12:42
921
原创 用Pytorch实现线性回归(Linear Regression with Pytorch)
设计模型(用于计算y_hat(y的预测值)),构造损失函数和优化器(使用PyTorch API),写训练周期(前馈(算loss)+反馈(算梯度)+更新(更新权重))
2024-07-16 14:56:43
839
原创 关于解决各类由于电脑名为中文导致的各类问题
解决方法:Anoconda安装笔记+win10 更改中文用户名为英文_anaconda prompt运行索引含汉字,怎么改成英文-CSDN博客
2024-07-11 16:11:08
302
原创 Python中csv文件的写入和读取
CSV文件是一种纯 文本文件 ,用于存储表格和电子表格信息。内容通常是由文本、数字或日期组成的表格。重要的是,csv文件时以逗号为分隔符的一种文件形式。
2024-06-12 09:03:40
441
原创 抽象,自定义函数,递归
函数执行特定的操作并返回一个值,你可以调用它(调用时可能需要提供一些参数——放在圆括号中的内容)。一般而言,要判断某个对象是否可调用,可使用内置函数callable。此时说明x是不可以调用的,y是可以的。(并非所有的函数都返回值)函数是结构化编程的核心。那么如何定义函数呢?使用def(表示定义函数)语句。上面两行是对于函数的简单定义,最下面是对函数的调用。那现在回到斐波那契数,如果编写一个函数,返回一个由斐波那契数组成的列表呢?前5行都是对于斐波那契数整个函数的定义,最后一行是对其进行调用。
2024-06-06 16:11:53
803
原创 Pytorch反向传播算法(Back Propagation)
首先第一层计算的是w1*x+b1,假如说我们的输入x是一个n维的列向量,结果是一个m维的列向量,MM是矩阵相乘,那我们需要的w1是一个m*n的矩阵,相乘得到的结果是一个m维的列向量,需要b1也是一个m维的列向量,ADD表示相加,得到的结果可以看成这个层的输出,但其实这个值还需要放入到下一层进行第二层的运算,而两个的运算过程都差不多,大家可以自己看一下。大家看,在一个线性的运算中,其中不管有多少层,w1,w2都是可以通过计算放在一起的,那最后得到的结果也可以看出来,又是一个新的线性运算。
2024-05-31 11:01:08
977
原创 条件,循环,及其他语句
换而言之,标准值False和None、各种类型(包括浮点数、复数等)的数值0、空序列(如空字符串、空元组和空列表)以及空映射(如空字典)都被视为假,而其他各种值都被视为真,包括特殊值True。这个函数让你能够迭代索引-值对,其中的索引是自动提供的。实际上,这里执行的操作称为序列解包(或可迭代对象解包):将一个序列(或任何可迭代对象)解包,并将得到的值存储到一系列变量中。赋值语句你见过很多,有的给变量赋值,还有的给数据结构的一部分(如列表中的元素和切片,或者字典项)赋值,但还有其他类型的赋值语句。
2024-05-29 23:05:59
921
1
原创 字典的相关知识
方法popitem类似于list.pop,但list.pop弹出列表中的最后一个元素,而popitem随机地弹出一个字典项,因为字典项的顺序是不确定的,没有“最后一个元素”的概念。方法setdefault有点像get,因为它也获取与指定键相关联的值,但除此之外,setdefault还在字典不包含指定的键时,在字典中添加指定的键-值对。这是因为字典是无序的,类似的方法毫无意义。(2)copy:方法copy返回一个新字典,其包含的键-值对与原来的字典相同(这个方法执行的是浅复制,因为值本身是原件,而非副本)。
2024-05-24 17:33:17
774
原创 Pytorch梯度下降算法(Gradient Descent)
其实对于我们将要学的梯度最小函数,目的就是先得到loss损失最小的值,然后根据这个最小的值去得到w。初始点在initial guess这个位置,我们希望找到最小的权重点global cost minimum,我们到底是让这个点左移寻找还是右移寻找呢?此时我们就需要使用到梯度定义。在加上一个x后,如果这个导数值变为负的,说明我接下来函数图像呈现下降的趋势,那根据我们上述所说的寻找一个阶梯最小函数,就是要使函数往小的方向进行。所以我们希望函数图像下降的话,我们就取导数为负的方向。
2024-05-24 11:52:06
706
原创 Pytorch线性模型(Linear Model)
①首先准备好数据集(DataSet)②模型的选择或者设计(Model)③进行训练(Train)大部分模型都需要训练,有些不需要。这一步后我们会确定不同特征的权重④推理(inferring)1,2,3hours会有一个结果2,4,6points。这个就是训练过程,把x和y都给模型,让他自己学。5hours这个没有一个对应的y,这个就是我们的预测过程(相当于上面的题目学完了后,现在写这个题,看能不能写对)。
2024-05-22 17:53:04
1022
1
原创 Pytorch(Overview)
刚刚上面说的计算图算法,我们不需要自己去实现的。我们通常使用现成的deep learning framework 去进行实现(当然也可以自己去写framework,但是这个比我们写深度神经网络要难)我们将会用到的deep learning frameworks是pytorch(facebook),当然还有其他的如TensorFlow(Google),还有一个就是已近和pytorch合并的Caffe(facebook),还有如MxNet。欢迎大家一起学习Pytorch相关知识!!!
2024-05-22 15:47:33
955
原创 字符串(字符串方法)
但其实无论是title还是string.capwords都无法准确满足我们的需求,要实现真正的词首大写(根据你采用的写作风格,冠词、并列连词以及不超过 5个字母的介词等可能全部小写),你得自己编写代码。很多字符串方法都以is打头,如isspace、isdigit和isupper,它们判断字符串是否具有特定的性质(如包含的字符全为空白、数字或大写)。如果找到,就返回子串的第一个字符的索引,否则返 回-1。方法strip将字符串开头和末尾的空白(但不包括中间的空白)删除,并返回删除后的结果。
2024-05-21 22:00:14
668
原创 字符串(字符串的基本操作,设置字符串的格式)
这个运算符的行为类似于C语言中的经典函数printf: 在%左边指定一个字符串(格式字符串),并在右边指定要设置其格式的值。指定要设置 其格式的值时,可使用单个值(如字符串或数字),可使用元组(如果要设置多个值的格 式),还可使用字典(这将在下一章讨论),其中最常见的是元组。设置浮点数(或其他更具体的小数类型)的格式时,默认在小数点后面显示6位小数,并根据需要设置字段的宽度,而不进行任何形式的填充。上面我们在设置宽度的时候,出现不对齐的情况,在指定宽度和精度的数前面,可添加一个标志。但是要注意一个问题。
2024-05-21 20:48:27
1636
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人