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

吴恩达机器学习课后题-01线性回归

线性回归

  • 一.单变量线性回归
    • 题目
    • 损失函数(代价函数)
    • 梯度下降函数
    • 代价函数可视化
    • 整体代码
  • 二.多变量线性回归
    • 特征归一化(特征缩放)
    • 不同学习率比较
  • 正规方程
    • 正规方程与梯度下降比较
  • 使用列表创建一维数组
  • 使用嵌套列表创建二维数组(矩阵)
  • 创建一个3x3的零矩阵
  • 创建一个3x3的1矩阵
  • 创建一个3x3的矩阵,所有元素都是42
  • 使用arange生成一个一维数组
  • 使用linspace在指定间隔内生成均匀间隔的数值
  • 生成一个3x3的随机浮点数矩阵
  • 生成一个3x3的随机整数矩阵,元素范围在0到10之间

一.单变量线性回归

题目

在这里插入图片描述

numpy:科学计算库,处理多维数组,进行数据分析
pandas :是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的
Matplotlib:Python 的2D绘图库
matplotlib.pyplot:提供一个类似matlab的绘图框架

在这里插入图片描述
在这里插入图片描述
dataframe转数组三种方式
dataframe - > ndarray.
1.df.xalues,
2.df.as_matrix()
3.np.array(df)

绘制散点图
在这里插入图片描述

import numpy as np
import pandas as pd
import matplotlib.pyplot as pltdata=pd.read_csv("E:/学习/研究生阶段/python-learning/吴恩达机器学习课后作业/code/ex1-linear regression/ex1data1.txt",names=["population","profit"])
#print(data.describe())
data.plot.scatter("population","profit",label="population")
plt.show()

损失函数(代价函数)

在这里插入图片描述

def costfunction(x,y,theta):inner=np.power ( x @ theta-y,2)return np.sum(inner)/(2*len(x))

这个函数 costfunction 是用来计算线性回归中的成本(或损失)函数的,具体来说是均方误差(Mean Squared Error, MSE)成本函数。这个函数接受三个参数:x(特征矩阵),y(目标变量向量),和theta(参数向量,即线性模型的权重和偏置项)。下面是该函数的详细解释:

参数解释:
x:特征矩阵,其形状通常为 (m, n),其中 m 是样本数量,n 是特征数量(不包括偏置项)。
y:目标变量向量,其形状为 (m,),即每个样本对应一个目标值。
theta:参数向量,其长度应与 x 的特征数量加1相等(如果 x 不包含偏置项的话),因为我们需要一个额外的偏置项。theta 的第一个元素通常被认为是偏置项(截距),而其余元素对应于每个特征的权重。
函数逻辑:
x @ theta:这是矩阵乘法操作,计算 x 和 theta 的点积。如果 theta 的第一个元素是偏置项,那么 x 应该包含一列全为1的列(通常作为第一列),以对应偏置项。这样,x @ theta 的结果就是一个预测值向量,其形状与 y 相同((m,))。
np.power(x @ theta - y, 2):计算预测值与实际值之间的差的平方。这是计算误差的一种方式,平方是为了确保所有误差都是正的,并且能够放大较大的误差。
np.sum(inner):将上一步得到的误差平方向量中的所有元素相加,得到总误差。
return np.sum(inner)/(2len(x)):将总误差除以 2m(其中 m 是样本数量),得到平均误差的平方的一半。除以2主要是为了在求导时简化表达式,因为在实际应用中,我们经常需要计算成本函数的梯度,而这个操作可以简化梯度的计算。
注意事项:
在使用这个函数之前,需要确保 x 包含了偏置项(即一列全为1的列),除非你的 theta 已经被相应地调整过(例如,theta 的第一个元素不代表偏置项)。
确保 np(NumPy库)已经被正确导入,因为函数中用到了 np.power 和 np.sum 等NumPy库中的函数。
这个函数是线性回归模型训练过程中的一个重要组成部分,通过最小化这个成本函数,我们可以找到最佳的 theta 值,使得模型的预测值尽可能接近实际值。

[[0.]  [0.]]

这个数据是一个二维的浮点数列表(或可以视为一个2x1的矩阵),用Python的列表表示法来表示。每个子列表都包含一个浮点数 0.,表示0.0(即0的浮点数表示)。具体来说,数据是这样的:

python
[
[0.], # 第一个子列表,包含一个浮点数0.0
[0.] # 第二个子列表,也包含一个浮点数0.0
]
在Python中,这种数据结构是一个嵌套的列表(list of lists),外层列表包含两个元素,每个元素都是一个包含一个浮点数的内层列表。这种数据结构可以很方便地用numpy库转换成矩阵(numpy array)进行处理。

例如,使用numpy可以这样转换:

python
import numpy as np

data = [[0.], [0.]]
matrix = np.array(data)
print(matrix)
这段代码会输出:

[[0.]
[0.]]
这就是一个2x1的浮点数矩阵。在数据分析、机器学习或科学计算中,这种数据结构非常常见,特别是当使用numpy、pandas或其他科学计算库时。

梯度下降函数

"""
定义梯度下降函数
alpha:学习速率
inters:迭代次数
"""
def gradientDescent(x,y,theta,alpha,inters):for i in range(inters):costs=[]theta=theta-(x.T @ (x@theta-y))*alpha/len(x)cost=costfunction(x,y,theta)costs.append(cost)if i%100==0:print(cost)return theta,costs

代价函数可视化

在这里插入图片描述
fig是整张图
ax是

import numpy as np
import pandas as pd
import matplotlib.pyplot as pltfig, ax =plt.subplots()
ax.plot()
plt.show()

在这里插入图片描述
在这里插入图片描述

import numpy as np
import pandas as pd
import matplotlib.pyplot as pltfig, ax =plt.subplots(2,2)
ax1=ax[0,1]
ax1.plot()
plt.show()

整体代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt#定义代价函数
def costfunction(x,y,theta):inner=np.power ( x @ theta-y,2)return np.sum(inner)/(2*len(x))"""
定义梯度下降函数
alpha:学习速率
inters:迭代次数
"""
def gradientDescent(x,y,theta,alpha,inters):costs=[]for i in range(inters):theta=theta-(x.T @ (x@theta-y))*alpha/len(x)cost=costfunction(x,y,theta)costs.append(cost)# if i%100==0:#     print(cost)return theta,coststheta=np.zeros((2,1))#theta初始值2x1零矩阵
alpha=0.02#学习速率初始化
inters=2000#迭代次数初始化
data=pd.read_csv("E:/学习/研究生阶段/python-learning/吴恩达机器学习课后作业/code/ex1-linear regression/ex1data1.txt",names=["population","profit"])
#print(data.describe())
#data.plot.scatter("population","profit",label="population")
#plt.show()
data.insert(0,"ones",1)
x=data.iloc[:,0:-1]#取数据的0-倒数第二列,取所有行
#print(x)
y=data.iloc[:,-1:]
x=x.valuesy=y.values#y.shape,求矩阵大小
theta,costs=gradientDescent(x,y,theta,alpha,inters)fig,ax=plt.subplots(1,2)
ax1=ax[0]
ax1.plot(np.arange(inters),costs)
ax1.set(xlabel="inters",ylabel="costs",title="costs Vs inters")x_=np.linspace(y.min(),y.max(),100)
print(x_)
y_=theta[0,0]+theta[1,0]*x_
ax2=ax[1]
ax2.scatter(x[:,1],y,label="training data")
ax2.plot(x_,y_,"r",label="predect")
ax2.legend()
plt.show()

在这里插入图片描述

二.多变量线性回归

在这里插入图片描述

特征归一化(特征缩放)

1. 消除特征值之间的量纲影响,各特征值处于同一数量级提升
2. 模型的收敛速度
3. 提升模型的精度

在我们面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛。

在这里插入图片描述

不同学习率比较

#多变量线性回归
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt#定义代价函数
def costfunction(x,y,theta):inner=np.power ( x @ theta-y,2)return np.sum(inner)/(2*len(x))"""
定义梯度下降函数
alpha:学习速率
inters:迭代次数
"""
def gradientDescent(x,y,theta,alpha,inters):costs=[]for i in range(inters):theta=theta-(x.T @ (x@theta-y))*alpha/len(x)cost=costfunction(x,y,theta)costs.append(cost)# if i%100==0:#     print(cost)return theta,coststheta=np.zeros((3,1))#theta初始值2x1零矩阵
alpha=[0.0003,0.003,0.03,0.3,0.0001,0.001,0.1]#学习速率初始化
inters=2000#迭代次数初始化"""
归一化函数
data.mean平均值
data.std标准差
"""
def normalize_feature(data):return (data-data.mean())/data.std()
data=pd.read_csv("E:/学习/研究生阶段/python-learning/吴恩达机器学习课后作业/code/ex1-linear regression/ex1data2.txt",names=["size","bedrooms","price"])
data=normalize_feature(data)
# data.plot.scatter("size","price",label="price")
# plt.show()
data.insert(0,"ones",1)
x=data.iloc[:,0:-1]#取数据的0-倒数第二列,取所有行
y=data.iloc[:,-1:]
x=x.values#datafram转数组格式
y=y.values#y.shape,求矩阵大小
fig,ax1=plt.subplots()
for _alpha in alpha:_theta, costs = gradientDescent(x, y, theta, _alpha, inters)ax1.plot(np.arange(inters),costs,label=_alpha)
ax1.legend()#显示图例标签
ax1.set(xlabel="inters",ylabel="costs",title="costs Vs inters")
plt.show()

在这里插入图片描述

正规方程

在这里插入图片描述

正规方程与梯度下降比较

在这里插入图片描述

"""
单变量线性回归为例
"""
import numpy as npimport pandas as pd
import matplotlib.pyplot as plt
#定义正规方程
def normalequation(x,y):theta = np.linalg.inv(x.T @ x) @ x.T @ yreturn thetadata=pd.read_csv("E:/学习/研究生阶段/python-learning/吴恩达机器学习课后作业/code/ex1-linear regression/ex1data1.txt",names=["population","profit"])
#print(data.describe())
#data.plot.scatter("population","profit",label="population")
#plt.show()
data.insert(0,"ones",1)
x=data.iloc[:,0:-1]#取数据的0-倒数第二列,取所有行
#print(x)
y=data.iloc[:,-1:]
x=x.values
y=y.values
theta=normalequation(x,y)
print(theta)
#线性回归求得的参数
theta1=np.array([[-3.8928815],[1.19274237]])
print(theta1)
print(type(theta),type(theta1))
fig,ax=plt.subplots()
x_=np.linspace(y.min(),y.max(),100)
# print(x_)
y_1=theta1[0,0]+theta1[1,0]*x_
y_2=theta[0,0]+theta[1,0]*x_
ax.scatter(x[:,1],y,label="training data")
ax.plot(x_,y_1,"r",label="predect_xianxing")
ax.plot(x_,y_2,"b",label="predect_zhenggui")
ax.legend()
plt.show()

结果
线性回归:theta1=[[-3.8928815],[1.19274237]]
正规方程:theta=[[-3.89578088], [ 1.19303364]]
基本差不多
在这里插入图片描述

在Python中,numpy.ndarray是NumPy库提供的一个用于存储和操作大型多维数组和矩阵的核心对象。NumPy是Python的一个库,它提供了大量的数学函数工具,特别是针对数组的操作。要定义一个numpy.ndarray类型的矩阵,你首先需要安装并导入NumPy库,然后使用NumPy提供的函数或方法来创建数组。

以下是一些创建numpy.ndarray类型矩阵的基本方法:

  1. 使用numpy.array()
    这是最直接的方法,你可以将Python的列表(list)或其他序列类型转换为NumPy数组。

python
import numpy as np

使用列表创建一维数组

arr_1d = np.array([1, 2, 3, 4, 5])

使用嵌套列表创建二维数组(矩阵)

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

print(arr_1d)
print(arr_2d)
2. 使用numpy.zeros(), numpy.ones(), numpy.full()
这些函数分别用于创建指定形状和类型,但所有元素分别为0、1或指定值的数组。

python

创建一个3x3的零矩阵

zero_matrix = np.zeros((3, 3))

创建一个3x3的1矩阵

ones_matrix = np.ones((3, 3))

创建一个3x3的矩阵,所有元素都是42

full_matrix = np.full((3, 3), 42)

print(zero_matrix)
print(ones_matrix)
print(full_matrix)
3. 使用numpy.arange(), numpy.linspace()
这些函数用于生成具有特定间隔的数值数组。

python

使用arange生成一个一维数组

arr_arange = np.arange(0, 10, 2) # 从0开始到10(不包括10),步长为2

使用linspace在指定间隔内生成均匀间隔的数值

arr_linspace = np.linspace(0, 10, 5) # 从0到10生成5个均匀间隔的数

print(arr_arange)
print(arr_linspace.reshape((2, -1))) # 将其重塑为2x2矩阵(注意:这里5个元素不能完美重塑为2x2,仅为示例)
4. 使用numpy.random模块
NumPy的random模块提供了多种生成随机数组的函数。

python

生成一个3x3的随机浮点数矩阵

random_matrix = np.random.rand(3, 3)

生成一个3x3的随机整数矩阵,元素范围在0到10之间

random_int_matrix = np.random.randint(0, 11, size=(3, 3))

print(random_matrix)
print(random_int_matrix)
以上就是在Python中使用NumPy库定义numpy.ndarray类型矩阵的几种基本方法。NumPy提供了丰富的函数和特性,使得数组和矩阵的操作变得既高效又方便。

相关文章:

吴恩达机器学习课后题-01线性回归

线性回归 一.单变量线性回归题目损失函数(代价函数)梯度下降函数代价函数可视化整体代码 二.多变量线性回归特征归一化(特征缩放)不同学习率比较 正规方程正规方程与梯度下降比较 使用列表创建一维数组使用嵌套列表创建二维数组&a…...

白盒报告-jacoco

使用jacoco--执行nvn test 运行过程: 1、idea执行mvn test ,运行过程如下: a.maven-surefire-plugin:0.8.7执行目标动作:prepare-agent, 目的是:执行目标动作是为了在当前的项目名下生成jecoco.…...

【MySQL】SQL语句执行流程

目录 一、连接器 二、 查缓存 三、分析器 四、优化器 五、执行器 一、连接器 学习 MySQL 的过程中,除了安装,我们要做的第一步就是连接上 MySQL 在一开始我们都是先使用命令行连接 MySQL mysql -h localhost -u root -p 你的密码 使用这个命令…...

Selenium自动化防爬技巧:从入门到精通,保障爬虫稳定运行,通过多种方式和add_argument参数设置来达到破解防爬的目的

在Web自动化测试和爬虫开发中,Selenium作为一种强大的自动化工具,被广泛用于模拟用户行为、数据抓取等场景。然而,随着网站反爬虫技术的日益增强,直接使用Selenium很容易被目标网站识别并阻止。因此,掌握Selenium的防爬…...

从数据类型到变量、作用域、执行上下文

从数据类型到变量、作用域、执行上下文 JS数据类型 分类 1》基本类型:字符串String、数字Number、布尔值Boolean、undefined、null、symbol、bigint 2》引用类型:Object (Object、Array、Function、Date、RegExp、Error、Arguments) Symbol是ES6新出…...

一文读懂:AI时代到底需要什么样的网络?

各位小伙伴们大家好哈,我是老猫。 今天跟大家来聊聊数据中心网络。 提到网络,通常把网络比作高速公路,网卡相当于上下高速公路的闸口,数据包就相当于运送数据的汽车,交通法规就是“传输协议”。 如高速公路也会堵车一…...

基于HarmonyOS的宠物收养系统的设计与实现(一)

基于HarmonyOS的宠物收养系统的设计与实现(一) 本系统是简易的宠物收养系统,为了更加熟练地掌握HarmonyOS相关技术的使用。 项目创建 创建一个空项目取名为PetApp 首页实现(组件导航使用) 官方文档:组…...

严格模式报错

部分参考: Android内存泄露分析之StrictMode - 星辰之力 - 博客园 (cnblogs.com)...

nginx: [emerg] the “ssl“ parameter requires ngx_http_ssl_module in nginx.conf

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:42 查看/usr/local/nginx/conf/nginx.conf文件第42行数据: listen 443 ssl; # server中的配置 原因是:nginx缺少 http_ssl_modul…...

Docker 部署loki日志 用于微服务

因为每次去查看日志都去登录服务器去查询相关日志文件,还有不同的微服务,不同日期的文件夹,超级麻烦,因为之前用过ELK,原本打算用ELK,在做技术调研的时候发现了一个轻量级的日志系统Loki,果断采…...

[Day 57] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈的零知識證明技術 一、引言 隨著區塊鏈技術的不斷發展,如何在保護用戶隱私的同時確保數據的完整性和可信度成為了研究的焦點。零知識證明(Zero-Knowledge Proof,ZKP)技術就是其中的一項關鍵技術,它允許一方在不…...

06结构型设计模式——代理模式

一、代理模式简介 代理模式(Proxy Pattern)是一种结构型设计模式(GoF书中解释结构型设计模式:一种用来处理类或对象、模块的组合关系的模式),代理模式是其中的一种,它可以为其他对象提供一种代…...

《深入浅出多模态》(九)多模态经典模型:MiniGPT-v2、MiniGPT5

🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于 前沿论文解读、资料共享、行业最新动态以、实践教程、求职…...

调试和优化大型深度学习模型 - 0 技术介绍

调试和优化大型深度学习模型 - 0 技术介绍 flyfish LLaMA Factory LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上…...

华为S3700交换机配置VLAN的方法​

1.VLAN的详细介绍 VLAN(Virtual Local Area Network)即虚拟局域网,是一种将一个物理的局域网在逻辑上划分成多个广播域的技术。 1.1基本概念 1)作用: 隔离广播域:通过将网络划分为不同的 VLAN,广播帧只会在同一 VLAN 内传播,而不会扩散到其他 VLAN 中,从而有效…...

学懂C++(三十八):深入详解C++网络编程:套接字(Socket)开发技术

目录 一、概述与基础概念 1.1 套接字(Socket)概念 1.2 底层原理与网络协议 1.2.1 网络协议 1.2.2 套接字工作原理 二、C套接字编程核心技术 2.1 套接字编程的基本步骤 2.2 套接字编程详细实现 2.2.1 创建套接字 2.2.2 绑定地址 2.2.3 监听和接…...

SpringBoot-配置加载顺序

目录 前言 样例 内部配置加载顺序 ​ 样例 小结 前言 我之前写的配置文件,都是放在resources文件夹,根据当前目录下,优先级的高低,判断谁先被加载。但实际开发中,我们写的配置文件并不是,都放…...

第八周:机器学习笔记

第八周机器学习笔记 摘要Abstract机器学习1. 鱼和熊掌和可兼得的机器学习1.1 Deep network v.s. Fat network 2. 为什么用来验证集结果还是不好? Pytorch学习1. 卷积层代码实战2. 最大池化层代码实战3. 非线性激活层代码实战 总结 摘要 本周学习对李宏毅机器学习视…...

音乐怎么剪切掉一部分?5个方法,轻松学会音频分割!(2024全新)

音乐怎么剪切掉一部分?音频文件是娱乐和创作的重要基础。音频在我们日常生活中发挥着重要作用,从音乐播放列表到有趣的视频,它无处不在。无论是音乐爱好者还是内容创作者,我们常常需要对音频文件进行剪切和编辑。想象一下&#xf…...

洛谷 CF295D Greg and Caves

题目来源于:洛谷 题目本质:动态规划dp,枚举 解题思路:将整个洞分成两半,一半递增,一半递减。我们分别 DP 求值,最后合并。状态转移方程为:dpi,j​k2∑j​(j−k1)dpi−1,k​1。枚举极…...

【图像处理】在图像处理算法开发中,有哪些常见的主观评价指标和客观评价指标?

主观评价指标 在图像处理算法开发中,主观评价指标依赖于观察者的个人感受和判断,通常用于评估图像的视觉质量。以下是一些常见的主观评价指标: 平均意见分数 (Mean Opinion Score, MOS):通过收集多个评价者的评分并计算平均值来评…...

从零开始学cv-6:图像的灰度变换

文章目录 一,简介:二、图像的线性变换三、分段线性变换四,非线性变换4.1 对数变换4.2 Gamma变换 五,效果: 一,简介: 图像灰度变换涉及对图像中每个像素的灰度值执行数学运算,进而调整图像的视觉…...

使用Apache POI和POI-OOXML实现word模板文档自动填充功能

最近接到一个新的需求&#xff0c;用户创建好模板文件保存到模板库&#xff0c;然后使用在线文档编辑器打开模板时&#xff0c;将系统数据填充到模板文件并生成新的word文件&#xff0c;然后在线编辑&#xff0c;研究使用Apache POI和POI-OOXML实现了这个功能。 Maven依赖 <…...

【HarmonyOS NEXT星河版开发学习】综合测试案例-各平台评论部分

目录 前言 功能展示 整体页面布局 最新和最热 写评论 点赞功能 界面构建 初始数据的准备 列表项部分的渲染 底部区域 index部分 知识点概述 List组件 List组件简介 ListItem组件详解 ListItemGroup组件介绍 ForEach循环渲染 列表分割线设置 列表排列方向设…...

垂直行业数字化表现抢眼 亚信科技全年利润展望乐观

大数据产业创新服务媒体 ——聚焦数据 改变商业 2024年8月14日&#xff0c;亚信科技控股有限公司&#xff08;股票代码&#xff1a;01675.HK&#xff09;公布了公司截至2024年6月30日的中期业绩。 财报数据显示&#xff0c;2024年上半年&#xff0c;亚信科技的营业收入为人民币…...

EmguCV学习笔记 VB.Net 4.1 颜色变换

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 教程VB.net版本请访问&#xff1a;EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问&#xff1a;EmguCV学习笔记 C# 目录-CSD…...

【MySQL进阶之路】表结构的操作

目录 创建表 查看表 查看数据库有哪些表 查看表结构 查看表的详细信息 修改表 表的重命名 添加一列 修改某一列的属性 删除某一列 对列进行重命名 删除表 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 【MySQL进阶之路】MySQL基础——从零认识MySQL-CSDN博客 创…...

3分钟搞定PDF转PPT!你一定要知道的3款转换神器!

在数字办公成为主流的当下&#xff0c;我们每天会收到各类基于数字化方式存储的办公文档&#xff0c;如PDF、PPT、Word、Excel文档等。 日常处理这些文档时&#xff0c;经常需要在不同格式的文档之间进行切换和转换&#xff0c;其中将PDF转换为PPT就是一个非常高频的需求&…...

【EasyExcel】导出excel-设置动态表头并导出数据

需求背景&#xff1a; 导出excel的设置某些表头动态导出(可以根据筛选条件或一些属性的数据量)&#xff0c;方便导出后用户查看想看的信息。 一、技术选型&#xff1a; easyExcel的原生数据处理 二、方案设计&#xff1a; 根据EasyExcel支持的表头List<List<String>…...

深入探索 Elasticsearch 8:新特性与核心原理剖析(上)

深入探索 Elasticsearch 8&#xff1a;新特性与核心原理剖析 目录 一、引言 &#xff08;二&#xff09;版本 8 的重要意义 二、Elasticsearch 8 的新特性 三、Elasticsearch 的核心原理 一、引言 &#xff08;一&#xff09;Elasticsearch 简介 在大数据处理和搜索领域…...

瑜伽馆预约小程序,在线预约,提高商业价值

随着大众生活质量的提高&#xff0c;对休闲运动的关注逐渐加大&#xff0c;瑜伽作为一种身心放松、改善体态的运动&#xff0c;深受女性用户的喜爱。目前&#xff0c;各大瑜伽馆开始结合数字化&#xff0c;建立了新型的线上小程序&#xff0c;帮助大众快速预约体验瑜伽&#xf…...

Python--数据类型转换

在Python中&#xff0c;数据类型的转换是一个常见的操作&#xff0c;涉及将一种数据类型转换为另一种数据类型。Python提供了多种内置函数用于执行这种转换&#xff0c;如 int()、str()、float()、list()、tuple()、set()、dict() 等。下面详细讨论Python的基本数据类型及它们之…...

域控ntdsutil修改架构、域命名、PDC、RID、结构主机

#笔记记录# FSMO盒修改 1、提示访问特权不够&#xff0c;不能执行该操作&#xff0c;0x2098 清除缓存账号密码并修改新架构管理员账号密码即可。 背景&#xff1a;更替架构主机、域命名主机 C:\Windows\system32>ntdsutil ntdsutil: roles fsmo maintenance: ?? …...

解决 Swift 6 全局变量不能满足并发安全(concurrency-safe)读写的问题

概述 WWDC 24 终于在 Swift 十岁生日发布了全新的 Swift 6。这不仅意味着 Swift 进入了全新的“大”版本时代&#xff0c;而且 Swift 编译器终于做到了并发代码执行的“绝对安全”。 不过&#xff0c;从 Swift 5 一步迈入“新时代”的小伙伴们可能对新的并发检查有些许“水土不…...

迈入退休生活,全职开发ue独立游戏上架steam

决定退休了。算了算睡后收入&#xff0c;也可以达到每月一万一&#xff0c;正好可以养家糊口。 既然退休了&#xff0c;那就做些想做的事情&#xff0c;别人养花养草&#xff0c;而我打算开发独立游戏上架steam。 一&#xff0c;盘点下目前的技术体系。 1&#xff0c;图形学底…...

什么是光伏气象站——仁科测控

【仁科测控&#xff0c;品质保障】光伏气象站&#xff0c;‌这一专门为光伏发电系统设计的监测设备&#xff0c;‌其核心能力在于精确且实时地捕捉那些对光伏发电效率产生关键影响的气象因素。‌这些数据不仅为评估光伏电站的发电性能提供了重要依据&#xff0c;‌更是优化运维…...

webshell免杀--免杀入门

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文主要整理webshell免杀的一些基础思路 入门级&#xff0c;不是很深入&#xff0c;主要是整理相关概念 免杀对象 1.各类杀毒软件 类似360&#xff0c;火绒等&#xff0c;查杀己方webshell的软件。 2.各类流量…...

Linux---02---系统目录及文件基本操作命令

课程回顾 操作系统 虚拟机安装 本章重点 Linux系统目录结构 常用命令 熟练区分Linux下各层目录的作用 熟练掌握Linux的常用命令&#xff08;文件命令、时间命令等&#xff09; 一、Linux系统目录结构 1.1 目录结构 /&#xff1a; 根目录&#xff0c;一般根目录下只存放…...

CSP-J/S第一轮初赛模拟赛试题

本模拟试题为本人自创&#xff0c;由于发布在 LG 所以就直接放入链接。 非经允许&#xff0c;不得转载。 本套模拟题只供大家练习使用&#xff0c;不保证难度与真实 CSP-J/S 完全符合。 本模拟赛为专业CSP类型的模拟赛&#xff0c;不存在错题、超出知识的题目。 CSP-J/S 20…...

LangGPT结构化提示词

LangGPT是Language For GPT-like LLMs的简称&#xff0c;中文名为结构化提示词&#xff0c;LangGPT是一个帮助你编写高质量提示词的工具&#xff0c;理论基础是我们提出的一套模块化、标准化的提斯提编写方法论——结构化提示词。我们希望揭开提示工程的神秘面纱&#xff0c;为…...

如何为个人网站更换ssl证书

关键步骤 1&#xff0c;确认服务器类型并下载对应证书&#xff08;这个超级简单&#xff0c;阿里云现在可以下3月免费的&#xff09;&#xff1b; 2&#xff0c;本文以nginx服务为例&#xff0c;主打的就是一个简单且快速让你搞清楚实操流程&#xff1b; linux命令 ps-ef|gr…...

RabbitMQ-消息队列延迟队列一

1、安装rabbitmq 怎么安装rabbitmq请查看之前课程&#xff0c;如果已经安装&#xff0c;请略过此步。 2、创建vendor文件夹或是直接采用PHP框架 mkdir vendor 3、进入文件 cd vendor 4、安装php扩展 composer require php-amqplib/php-amqplib 5、进入上级创建dead文件…...

JavaScript中普通对象和Map对象的区别

在JavaScript中&#xff0c;普通对象&#xff08;{}&#xff09;和 Map 对象都是用于存储键值对的数据结构&#xff0c;但是他们有一些区别。 1. 键的类型 普通对象&#xff1a; 对象的键必须是字符串或 Symbol 类型。其他类型的值&#xff08;如数字、布尔值、对象等&#x…...

Liunx搭建Rustdesk远程桌面服务

1、环境准备 Linux&#xff1a;centos7.9 rustdesk server安装包 很多新服务器并没有 wget 和unzip 可以通过yum自行安装下&#xff0c;如果系统中有wget但不能使用&#xff0c;直接卸载重装即可。 yum install wget wget --no-check-certificate https://github.com/rust…...

antv X6--实现节点旁添加多个text标签

前言&#xff1a;接本专栏上篇文章&#xff0c;实现一个新需求&#xff0c;如有不懂的可先去看新手教程 需求描述&#xff1a;如何在节点旁添加多个标签&#xff0c;如下图所示&#xff1a; 实现该需求目前我只想到两种方法&#xff1a; 方法一&#xff1a;使用换行符将不同的…...

JAVA--多线程

Java中的多线程是指在同一个Java虚拟机&#xff08;JVM&#xff09;中并发执行多个线程的能力。线程是程序执行的最小单元&#xff0c;Java提供了丰富的API来创建和管理线程。以下是Java中实现多线程的一些关键概念和方法&#xff1a; Thread 类&#xff1a;Java提供了Thread类…...

ADB-DROM

# 读硬件信息 adb shell "cat /sys/block/mmcblk0/device/name" # MT6767/MT6768/MT6769/MT6762/MT6765/MT6761... # 频率档位 # 固定频率 adb shell "echo 0 > /sys/devices/platform/10012000.dvfsrc/helio-dvfsrc/dvfsrc_force_vcore_dvfs_opp" # …...

mysql 之 explain

1. 查看表的创建字段以及索引情况 show create table user_recommend; 2. 创建索引的原则&#xff1a;列的值比较离散 像性别字段&#xff0c;只有男&#xff0c;女 或者其他&#xff1b;expose字段&#xff0c;只有1分发&#xff0c;0不可分发。就不适宜在这种字段上添加索引…...

CentOS迁移案例 | 保障轨道交通安全、发挥基础设施效能,麒麟信安操作系统支撑某市轨道交通畅行无忧

为缓解城市交通拥堵难题&#xff0c;某市轨道交通公司计划新建一条贯穿城市关键区域、沿路设立20座站点的轨道交通线路&#xff0c;并基于麒麟信安操作系统构建轨道交通信号系统。 轨道交通信号系统是列车核心控制系统&#xff0c;负责列车运行的自动化控制&#xff0c;及对整…...

获取操作系统的信息(Go语言)

在 Go 语言中&#xff0c;你可以使用 runtime 和 os 包来查看操作系统的信息。以下是一些常见的操作系统信息获取方法&#xff1a; 1. 获取操作系统类型和架构信息 Go 的 runtime 包提供了基本的操作系统和架构信息&#xff1a; package mainimport ("fmt""r…...