Numpy(一)简介与基本使用

news2024/11/20 21:16:49

Numpy(一)简介与基本使用

一、Numpy简介

1.Numpy是一个运行速度非常快的数学库,主要用于数组计算

2.包含:N维数组对象ndarray、广播功能函数、整合C/C++/Fortran代码工具、包含线性代数/傅里叶变换/随机数生成等功能

3.优点:对于数值计算,Numpy比Python要快捷高效、Numpy经常和Scipy(Scientfic python)和Matplotlib(绘图库)一起使用。

二、Ndarray对象

1.介绍:

1.Numpy最重要的一个特点是其N维数组对象Ndarray,它是一些列同类型数据的集合,以0为下标开始进行集合中元素的索引。

2.Ndarray对象是用于存放同类型元素的多维数组。

3.Ndarray中的每个元素在内存中都有相同存储大小的区域。

在这里插入图片描述

包含:

1.一个指向数据(内存或者内存映射文件的一块数据)的指针
2.数据类型(data-type)————描述数组中固定值大小
3.表示数组形状的元组,各维度大小的元组(几维矩阵)

三、Numpy的数据类型

1.Numpy支持的数据类型比Python多,与C语言数据类型基本对应。

符号注释
bool_布尔型数据类型(True或False)判断逻辑语句的真伪
int_默认的整数数据类型(类似于C语言中的int32、int64、long)
intc与C语言的int一样,一般是int32或int64
intp用于索引的数据类型(类似于C用于的ssize_t,一般情况下还是int32或int64)
int88字节(-128-127)
int1616字节(-32768-32767)
int3232字节(-232-232-1)
int6464字节(-264-264-1)
uint8无符号整数8字节(0-127)
uint16无符号整数16字节(0-32767)
uint32无符号整数32字节
uint64无符号整数64字节
float_float64类型的简写
float16半精度浮点数(1个符号位 、5个指数位、10个尾数位)
float32单精度浮点数(1个符号位 、8个指数位、23个尾数位)
float64双精度浮点数(1个符号位 、11个指数位、52个尾数位)
complex_complex128简写,表示128位复数
complex64复数,表示双32位浮点数
complex128复数,表示双64位浮点数
简写:
符号注释
b布尔型
i有符号整型
u无符号整型
f浮点型
c复数浮点型
m时间间隔(timedelta)
M日期时间(datatime)
Opython对象
S,a字符串
UUnicode
V原始数据(void)

四、创建一维数组

1.基本语法:

numpy.array(object,dtype=none,copy=true,order=none,subok=flase,ndmin=0)
参数说明
object数组或嵌套的数列
dtype数组元素的数据类型
copy对象是否需要复制
order创建数组的样式,C为行方向,F为列方向
subok默认返回一个与基类类型一致的数组
ndmin指定生成数组的最小维度

2.创建数组

①创建一维数组
import numpy as np
a=np.array([1,2,3,4,5])//创建[12345]的一维数组
print(a)//打印该数组
print(type(a))//打印数据类型

[1 2 3 4 5]
<class 'numpy.ndarray'>
*创建数组数据要一致,否则按照优先级来(字符型(串)>float>int)
import numpy as np
a=np.array([1,2,3,4.5,5])//此时将里面一位数字改为浮点数float
print(a)

[1.  2.  3.  4.5 5. ]//整体数组改为浮点型
②创建多维数组
import numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
print(type(a))

[[1 2 3]
 [4 5 6]
 [7 8 9]]
<class 'numpy.ndarray'>
*与matlab区别:matlab使用分号将多行数组隔开!
③改变最小维度
import numpy as np
a=np.array([[1,2,3],[5,6,7],[2,3,4]],ndmin=1)
print(a)

④改变数组的数据类型
import numpy as np
a=np.array([[1,2,3],[5,6,7],[2,3,4]],dtype=float)//此时将数据类型改为浮点型
print(a)

[[1. 2. 3.]
 [5. 6. 7.]
 [2. 3. 4.]]

3.创建特殊数组的一些函数

①empty()
语法规则:
numpy.empty(shape,dtype=float,order='C')
作用:创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组
参数说明
shape数组形状
dtype数据类型
order行优先或列优先
创建一个随机数组
import numpy as np
a=np.empty([2,2],dtype=int)
print(a)

[[ -156566546  2057024226]
 [  617057341 -1551763911]]
②zeros()
语法规则:
numpy.zeros(shape,dtype=float,order='C')
作用:创建指定大小的数组,数组元素用0代替
创建0元素数组
import numpy as np
a=np.zeros([3,3],dtype=float,order='c')
print(a)

[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]]
import numpy as np
a=np.zeros(6,dtype=float,order='c')
print(a)

[0. 0. 0. 0. 0. 0.]
③ones()
语法规则:
numpy.ones(sharp,dtype=float,order='c')
作用:创建指定大小的数组,数组元素用1代替
创建1元素的数组
import numpy as np
a=np.ones([2,2],dtype='i4')
print(a)
④full()
语法规则:
numpy.full(shape,fill_value,dtype=float,order='c')
作用:创建指定大小的数组,数组内元素用fill_value代替
创建一个fill_value大小为100的数组
import numpy as np
a=np.full([2,3],fill_value=100)
print(a)
⑤eye()
语法规则:
numpy.eye(N,M,dtype=int,order='C')
这里N指行,M指列,如果不表达列则默认N与M值相同
作用:创建指定大小(行列值)的数组,其对角线位置的数字为1,其余数字为0
创建10*10的对角1矩阵
import numpy as np
a=np.eye(10,dtype=int)
print(a)

[[1 0 0 0 0 0 0 0 0 0]
 [0 1 0 0 0 0 0 0 0 0]
 [0 0 1 0 0 0 0 0 0 0]
 [0 0 0 1 0 0 0 0 0 0]
 [0 0 0 0 1 0 0 0 0 0]
 [0 0 0 0 0 1 0 0 0 0]
 [0 0 0 0 0 0 1 0 0 0]
 [0 0 0 0 0 0 0 1 0 0]
 [0 0 0 0 0 0 0 0 1 0]
 [0 0 0 0 0 0 0 0 0 1]]
创建一个10*9的对角1的矩阵
import numpy as np
a=np.eye(M=10,N=9,dtype=int)
print(a)

[[1 0 0 0 0 0 0 0 0 0]
 [0 1 0 0 0 0 0 0 0 0]
 [0 0 1 0 0 0 0 0 0 0]
 [0 0 0 1 0 0 0 0 0 0]
 [0 0 0 0 1 0 0 0 0 0]
 [0 0 0 0 0 1 0 0 0 0]
 [0 0 0 0 0 0 1 0 0 0]
 [0 0 0 0 0 0 0 1 0 0]
 [0 0 0 0 0 0 0 0 1 0]]
⑥arange()
语法规则:
numpy.arange(start,stop,step,dtype)
参数注释
start起始下标
stop终止下标
step步长
作用:创建数值范围并返回ndarray对象,依据start与stop指定的范围以及step设定的步长生成一个数组。
*创建一个[0,10)步长为0.5的数组
import numpy as np
a=np.arange(0,10.0,0.5,dtype=float)
print(a)

[0.  0.5 1.  1.5 2.  2.5 3.  3.5 4.  4.5 5.  5.5 6.  6.5 7.  7.5 8.  8.5
 9.  9.5]
⑦frombuffer()
语法规则:
numpy.frombuffer( buffer,dtype=float,count=-1,offset=0)
参数说明
buffer可以是任意对象,会以流的形式读入
dtype返回数组的数据类型
count读取的数据,默认是-1(读取所有元素)
offset读取起始位置,默认为0(读取第一个(0位置)位置)
作用:给定一个字符串,通过frombuffer()函数读取该字符串的字符
eg:读取该字符串的字符(默认count=-1读取所有元素)
import numpy as np
x=b"I Like study  and I like learn python"//这里用到python3在所给定的字符串前面加b
a=np.frombuffer(x,dtype='S1')
print(a)

[b'I' b' ' b'L' b'i' b'k' b'e' b' ' b's' b't' b'u' b'd' b'y' b' ' b' '
 b'a' b'n' b'd' b' ' b'I' b' ' b'l' b'i' b'k' b'e' b' ' b'l' b'e' b'a'
 b'r' b'n' b' ' b'p' b'y' b't' b'h' b'o' b'n']
eg:读取三个元素
import numpy as np
x=b"I Like study  and I like learn python"
a=np.frombuffer(x,dtype='S1',count=3)
print(a)

[b'I' b' ' b'L']
eg:从位置4读取元素
import numpy as np
x=b"I Like study  and I like learn python"
a=np.frombuffer(x,dtype='S1',offset=4)
print(a)

[b'k' b'e' b' ' b's' b't' b'u' b'd' b'y' b' ' b' ' b'a' b'n' b'd' b' '
 b'I' b' ' b'l' b'i' b'k' b'e' b' ' b'l' b'e' b'a' b'r' b'n' b' ' b'p'
 b'y' b't' b'h' b'o' b'n']
⑧linspace()
语法规则:
numpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)
作用:创建一个一维数组,数组是有一个等差数列构成的。
参数注释
start序列的起始值
stop序列的终止值
num生成步长的样本数量,默认为50
创建一个(1-100)的等差数列步长为20
import numpy as np
x=np.linspace(1,100,20,dtype='i4')
print(x)

[  1   6  11  16  21  27  32  37  42  47  53  58  63  68  73  79  84  89
  94 100]
⑨logspace()
语言规则:
numpy.logspace(start,stop,num=50,base=10.0,dtype=None)
作用:创建一个等比数列
参数注释
start序列的起始位置
stop序列的终止位置
num序列的步长
base对数log的底数,默认是10
生成一个底数是10,从101—102的数组,分成10份等比
import numpy as np
x=np.logspace(1,2,10,dtype='f4')
print(x)

[ 10.        12.915497  16.681005  21.544348  27.825594  35.938137
  46.41589   59.948425  77.42637  100.      ]

3.随机数创建数组

法一:使用random.rand()创建数组
①生成一个随机数
语法规则:
numpy.random.rand()
作用:生成一个[0,1)的随机数,用字符型表示。
实例:
import numpy as np
x=np.random.rand()
print(x)

0.03294766604498356
②生成含有三个元素的一维数组
语法规则:
numpy.random.rand(num)
*num为一维数组中元素的个数
实例
import numpy as np
x=np.random.rand(3)
print(x)

[0.40174655 0.00897811 0.55320899]
③生成含有N行M列的二维数组
语法规则:
numpy.random.rand(N,M)
*N代表行数,M代表列数
实例
import numpy as np
x=np.random.rand(3,2)
print(x)

[[0.65287452 0.92300411]
 [0.14517632 0.29018207]
 [0.12989397 0.44906311]]
④生成含有N行M列的S维的数组
语法规则:
numpy.random.rand(N,M,S)
*S=维数-1
实例
import numpy as np
x=np.random.rand(3,2,2)
print(x)

[[[0.0033195  0.42253443]
  [0.36875234 0.29957679]]

 [[0.61087282 0.9155903 ]
  [0.57799805 0.16467769]]

 [[0.47333421 0.19336464]
  [0.62533259 0.31438229]]]

法二:利用random.random()创建一维数组
①创建一个随机数
import numpy as np
x=np.random.random()
print(x)
0.3192154894500221
②创建一维随机数组
import numpy as np
x=np.random.random(6)
print(x)

[0.37145277 0.38638417 0.92033279 0.60777345 0.69340799 0.49806382]
*此方法只能创建一维数组!
法三:创建一顶范围内的随机数组
①语法规则:
numpy.random.randint(low,high,size)
参数含义
low下边界值
high上边界值(不包含)
size元素个数
实例:构建一个[5,8)含有6个元素的一维随机数组
import numpy as np
x=np.random.randint(5,8,6)
print(x)
[6 7 6 5 7 7]
法四:创建一组符合标准正态分布的一维数组
*标准正态分布:又称u分布,以0为均值,以1为标准差的正态分布,N(0,1)
语法规则:
numpy.random.randn()
eg.建立一个符合正态分布的随机数组
import numpy as np
x=np.random.randn(2,4)
print(x)

[[-0.25729227  0.09670748  0.77541419  0.55263664]
 [ 0.25588823 -0.23929083  0.69356251  0.33543219]]

五、Ndarray数组属性

1.Ndarray数组介绍

Numpy数组的维数称之为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在Numpy中,每一个线性的数组称之为一个轴(axis),也就是维度(dimensions)。

2.常用属性

属性说明
ndim秩,即轴的数量或维度的数量
shape数组的维度
size数组元素的总个数,相当于shape中n*m值
dtype数据类型
itemsize对象中每个元素的大小,以字节为单位
flagsndarrary对象的 内存信息
realndarry元素的实部
imagndarry元素的虚部
data元素缓冲区

3.属性用法

①ndim()————统计矩阵维度或轴的数量
import numpy as np
a=np.random.rand(3,3,4)————构建3维数组
print(a)————打印构建的三维随机数组
print(a.ndim)————打印维度

[[[0.15824291 0.98394574 0.71166123 0.47091615]
  [0.27895798 0.62258469 0.86294268 0.77535747]
  [0.60240049 0.98353132 0.57134778 0.36794952]]

 [[0.44186638 0.71088624 0.39417474 0.23225202]
  [0.63075121 0.96369931 0.70764624 0.56386642]
  [0.57312328 0.11007869 0.68119825 0.97775468]]

 [[0.06722779 0.86284405 0.25857728 0.14816577]
  [0.65173668 0.65740552 0.80361287 0.92018257]
  [0.51990904 0.57557527 0.53189146 0.84094672]]]
3

②reshape()————重新构造矩阵的型/修改矩阵维度
import numpy as np
a=np.random.rand(6)
b=a.reshape(2,3)————将一维矩阵修改为二维矩阵
print(a)
print(a.ndim)
print(b)
print(b.ndim)

[0.70871458 0.76700232 0.04056928 0.2205189  0.7598584  0.8095149 ]
1
[[0.70871458 0.76700232 0.04056928]
 [0.2205189  0.7598584  0.8095149 ]]
2

③shape————表示数组的维度,以元组的形式表示(行,列)
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a)
print(a.shape)

[[1 2 3]
 [4 5 6]]
(2, 3)
*a.shape调整数组的维度
方法一:利用shape直接规定数组的维度
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
a.shape=(3,2)——————将原先矩阵的(23)改为现在的(32print(a.shape)
print(a)

(3, 2)
[[1 2]
 [3 4]
 [5 6]]
方法二:利用reshape修改维度
import numpy as np
a=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10],[9,8,7,6]])
b=a.reshape(2,8)
print(a)
print(a.shape)
print(b)
print(b.shape)

[[ 1  2  3  4]
 [ 4  5  6  7]
 [ 7  8  9 10]
 [ 9  8  7  6]]
(4, 4)
[[ 1  2  3  4  4  5  6  7]
 [ 7  8  9 10  9  8  7  6]]
(2, 8)

Process finished with exit code 0

④size————统计数组内元素总个数
import numpy as np
a=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10],[9,8,7,6]])
print(a)
print(a.size)

[[ 1  2  3  4]
 [ 4  5  6  7]
 [ 7  8  9 10]
 [ 9  8  7  6]]
16
⑤dtype————识别数组内元素的数据类型
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
b=np.random.rand(2,3)
print(a)
print(a.dtype)
print(b)
print(b.dtype)

[[1 2 3]
 [4 5 6]]
int32
[[0.3275208  0.17867393 0.5683612 ]
 [0.36704931 0.07051842 0.27552977]]
float64
⑥itemsize————以字节的的形式返回数组每一个元素的大小
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a)
print(a.dtype)
print(a.itemsize)
b=np.random.rand(2,3)
print(b)
print(b.dtype)
print(b.itemsize)
c=np.arange(0,10,1)
print(c)
print(c.dtype)
print(c.itemsize)
d=np.array([[1+2j]])
print(d)
print(d.dtype)
print(d.itemsize)

[[1 2 3]
 [4 5 6]]
int32
4
[[0.73846614 0.12767507 0.70801391]
 [0.55624904 0.27666238 0.81485625]]
float64
8
[0 1 2 3 4 5 6 7 8 9]
int32
4
[[1.+2.j]]
complex128
16

Process finished with exit code 0

六、数组转置

1.什么是转置

A.一维数组不能进行转置
B.转置后的数组交替——(m,n)—>(n,m)
[1,2,3]            [1,4,7]
[4,5,6]   转置结果: [2,5,8]
[7,8,9]            [3,6,9]
C.对于向量而言(a0,a1,a2…an-1,an)—>(an,an-1…a2,a1,a0)

2.矩阵转置的操作(a.T)

import numpy as np
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
print("原始矩阵为:",a)
b=a.T
print("转置后的矩阵为:",b)

原始矩阵为: [[1 2 3]
 [4 5 6]
 [7 8 9]]
转置后的矩阵为: [[1 4 7]
 [2 5 8]
 [3 6 9]]

练习题目

1.编写一个从30到50的所有偶数的数组

tips:np.arange(30,50,2) start=30 stop=50 step=2
import numpy as np
a=np.arange(30,50,2)
print(a)

[30 32 34 36 38 40 42 44 46 48]

2.从给定数组中提取奇数

tips:a%2==1
import numpy as np
a=np.array([[1,2,3],[34,56,78],[22,55,77]])
print(a[a%2==1])

[ 1  3 55 77]

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

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

相关文章

ChatGPT快速入门

ChatGPT快速入门 一、什么是ChatGPT二、ChatGPT底层逻辑2.1 实现原理2.2 IO流程 三、ChatGPT应用场景3.1 知心好友3.2 文案助理3.3 创意助理3.4 角色扮演 一、什么是ChatGPT ChatGPT指的是基于GPT&#xff08;Generative Pre-trained Transformer&#xff09;模型的对话生成系…

python字典、列表排序,从简单到复杂

因工作原因&#xff0c;需要频繁对python字典(dict)、列表(list)等进行各种各样的排序&#xff0c;发现网上这块的资料又多又杂&#xff0c;尤其涉及到lambda的&#xff0c;让人觉得难以理解看不下去&#xff0c;因此写了这篇文章&#xff0c;从简单到复杂&#xff0c;配合例子…

【Eclipse】安装教程

首先打开官网&#xff1a;Eclipse Downloads | The Eclipse Foundation 这里我选择了下载最新版本 下载好后&#xff0c;双击下载的文件 &#xff0c;即可进入到安装页面 点击第一个进行安装&#xff1a; 最后安装成功&#xff01; 补充&#xff1a; 【Eclipse】安装JAVA EE插…

Jmter接口网站压力测试工具使用记录

1.首先下载Jmeter 官方地址&#xff1a;Apache JMeter - Apache JMeter™ 回到顶部 2.安装Jmeter 把下载的文件进行解压&#xff0c;产生如下目录&#xff1a; 打开bin文件夹下的jmeter.bat文件及进入程序的主界面窗体jmeter.log是日志文件。 主意&#xff1a;需要配置java环…

河北专升本(C语言)

目录 一&#xff1a;C语言的构成特点 二: 数据类型 三: 常量、变量、运算符及表达式 &#xff08;一&#xff09;标识符 &#xff08;二&#xff09;常量 &#xff08;三&#xff09;变量&#xff1a;其值可以改变的量 &#xff08;四&#xff09;各种类型数据混合运算 &…

打印编译程序固件的环境信息

在编译程序固件的时候&#xff0c;我们常常会有一个软件版本号&#xff0c;用来区分不同的版本&#xff0c;有时候又没变化软件版本号&#xff0c;重新发两个debug版本给测试验证&#xff0c;那我们就需要在程序中埋入一些环境信息&#xff0c;下面有两种方法来加入一下简单的信…

APP 备案公钥、签名 MD5、SHA-1、SHA-256获取方法。

公钥和 MD5 值可以通过安卓开发工具、Keytool、Jadx-GUI 等多种工具获取&#xff0c;最简单的就是以 jadx-gui 为例。 1.下载 jadx-gui 工具 &#xff0c;点击此处 下载 jadx-gui 工具。 2.下载完成后&#xff0c;解压压缩包&#xff0c;双击 jadx-gui-1.4.7.exe 运行。 3.…

Neo4j入门基础:CREATE,DELETE,SET,REMOVE(看不懂我直接吃...)

1. 创建节点 1.1 创建一个节点 create (s:student1)创建一个标签为student1的节点 1.2 创建多个节点 create (s2:student2),(s3:student3)同时创建两个节点&#xff0c;标签分别为&#xff1a;student2&#xff0c;student3 1.3 创建节点并附带&#xff08;多个&#xff0…

MAC上设置IDEA如何一个窗口打开多个项目,多个tab

1、IDEA一个窗口打开多个项目 如果你打开了多个项目、每次切换都要半天&#xff0c;想让项目都汇聚到top栏 点击 Window - Merge All Project Windows 即可 但是这样比较挫&#xff0c;每次打开新的项目都还是会重新打开一个IDEA窗口 so&#xff0c;如何设置项目在同一个窗口…

树模型(一)孤立森林

孤立森林&#xff08;Isolation Forest&#xff09;算法是西瓜书作者周志华老师的团队研究开发的算法&#xff0c;一般用于结构化数据的异常检测。 异常的定义 针对于不同类型的异常&#xff0c;要用不同的算法来进行检测&#xff0c;而孤立森林算法主要针对的是连续型结构化…

Junit单元测试之Maven项目集成Jacoco,查看覆盖率报告

关于单元测试以及本文Calculate类等内容&#xff0c;请见前述文章Junit单元测试_Joy T的博客-CSDN博客 要学Jacoco&#xff0c;首先要知道测试覆盖率是什么&#xff01; 测试覆盖率 测试覆盖率表示的是测试用例所能触及&#xff08;或“覆盖”&#xff09;的代码百分比。换句…

2023年起重信号司索工(建筑特殊工种)证考试题库及起重信号司索工(建筑特殊工种)试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年起重信号司索工(建筑特殊工种)证考试题库及起重信号司索工(建筑特殊工种)试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特…

kafka安装和使用的入门教程

这篇文章简单介绍如何在ubuntu上安装kafka&#xff0c;并使用kafka完成消息的发送和接收。 一、安装kafka 访问kafka官网Apache Kafka&#xff0c;然后点击快速开始 紧接着&#xff0c;点击Download 最后点击下载链接下载安装包 二、启动kafka 经过上一步下载完成后&#xff…

新网站如何快速接入百度推荐

百度站长工具 在百度站长工具中点击“自动推送”&#xff0c;如下截图: 推送代码放网站的底部 将百度平台提交的主动推送代码放在自己的网站的底部模板中&#xff1b; <script> (function(){ var bp document.createElement(script); var curProtocol window.locati…

基于算术优化优化的BP神经网络(分类应用) - 附代码

基于算术优化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于算术优化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.算术优化优化BP神经网络3.1 BP神经网络参数设置3.2 算术优化算法应用 4.测试结果…

KOSMOS-2.5:密集文本的多模态读写模型

Overview 总览摘要1 引言2 KOSMOS-2.52.1 模型结构2.1 图像和文本表征2.3 预训练数据2.4 数据处理2.5 过滤与质量控制 3 实验3.1 评估3.2 实现细节3.3 结果3.4 讨论 4 相关工作4.1 多模态大语言模型4.2 图文理解 5 总结与展望 总览 题目: KOSMOS-2.5: A Multimodal Literate M…

中断机制-通过volatile实现线程中断停止

4.1.4 大厂面试题中断机制考点 如何停止中断运行中的线程&#xff1f; 通过一个volatile变量实现 package com.nanjing.gulimall.zhouyimo.test;import java.util.concurrent.TimeUnit;/*** author zhou* version 1.0* date 2023/10/15 2:34 下午*/ public class InterruptD…

选择排序(学习笔记)

选择排序 选择排序的基本思想是冒泡排序&#xff0c;记录当前位置i和最小值k的位置&#xff0c;使用一个变量j往后寻找。 每一轮找到最小值后与第一个元素进行交换&#xff0c;以此类推。 不使用辅助变量交换两个元素的值方法 package com.company.sort;import java.util.Ra…

【AI视野·今日NLP 自然语言处理论文速览 第五十一期】Tue, 10 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 10 Oct 2023 (showing first 100 of 172 entries) Totally 100 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Few-Shot Spoken Language Understanding via Joint Speech-Text Model…

使用PyTorch加载数据集:简单指南

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…