【Python】—— Numpy 初体验

Numpy 初体验

  • 第1关:Numpy 创建数组
    • 任务描述
    • 相关知识
      • 创建数组
    • 编程要求
    • 测试说明
    • 运行代码
  • 第2关:Numpy 数组的基本运算
    • 任务描述
    • 相关知识
      • 向量与向量之间
        • 1. 加法
        • 2. 减法
        • 3. 乘法(X乘)
        • 4. 乘法(点乘)
        • 5. 除法
      • 向量与标量之间
        • 1. 加法
        • 2. 减法
        • 3. 乘法
        • 4. 除法
        • 5. 求余
        • 6. 矩阵转置
        • 7. 矩阵的逆
    • 编程要求
    • 测试说明
    • 运行代码
  • 第3关:Numpy 数组的切片与索引
    • 任务描述
    • 相关知识
      • 数组的切片与索引
    • 编程要求
    • 测试说明
    • 运行代码
  • 第4关:Numpy 数组的堆叠
    • 任务描述
    • 相关知识
      • 改变数组形状
        • reshape()
        • ravel()
        • flatten()
        • shape()
        • transpose()
      • 数组的堆叠
        • hstack()
        • vstack()
        • dstack()
    • 编程要求
    • 测试说明
    • 运行代码
  • 第5关:Numpy 的拆分
    • 任务描述
    • 相关知识
      • 拆分数组
        • hsplit()
        • vsplit()
        • dsplit()
    • 编程要求
    • 测试说明
    • 运行代码

第1关:Numpy 创建数组

任务描述

本关任务:使用 Numpy创建一个多维数组。

相关知识

为了完成本关任务,你需要掌握:创建数组。

创建数组

Python中创建数组有许多的方法,这里我们使用 Numpy中的 arange方法快速的新建一个数组:

import numpy as np
a = np.arange(5)

其中 import numpy as np是指引入 Numpy这个库,并取别名为 np。之所以取别名,是为了代码编写的方便。a=np.arange(5) 是指将数值 0 1 2 3 4赋值给 a这个变量,这样我们就快速的创建了一个一维数组。

创建多维数组的方法是:

import numpy as np
b = np.array([np.arange(6),np.arange(6)])

这里,我们使用两个 arange方法,创建了两个 1x6的一维数组,然后使用 numpyarray方法,将两个一维数组组合成一个 2x6的二维数组。从而达到了创建多维数组的目的。

numpy 创建的数组可以直接复制,具体代码示例如下:

import numpy as np
x = [y for y in range(6)]
b=np.array([x]*4)

该段代码会创建一个 4*6的数组。

编程要求

本关的任务是,补全 Begin-End 内的代码,以实现创建一个 m*n的多维数组的功能。具体要求如下:

  • 函数接受两个参数,然后创建与之对应的的多维数组;

  • 本关的测试样例参见下文。

本关设计的代码文件 cnmda.py的代码框架如下:

# 引入numpy库
import numpy as np
# 定义cnmda函数
def cnmda(m,n):'''创建numpy数组参数:m:第一维的长度n: 第二维的长度返回值:ret: 一个numpy数组'''ret = 0# 请在此添加创建多维数组的代码并赋值给ret#********** Begin *********##********** End **********#return ret

测试说明

本关的测试过程如下:

  • 平台运行 step1/cnmdatest.py 文件,并以标准输入方式提供测试输入;

  • cnmdatest.py文件调用 cnmda中的 cnmda方法,平台获取 cnmdatest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。

以下是平台对 step1/cnmdatest.py的测试样例:

测试输入: 5 8

预期输出: (5,8)

测试输入: 4 9

预期输出:(4,9)

运行代码

# 引入numpy库
import numpy as np
# 定义cnmda函数
def cnmda(m,n):'''创建numpy数组参数:m:第一维的长度n: 第二维的长度返回值:ret: 一个numpy数组'''ret = 0# 请在此添加创建多维数组的代码并赋值给ret#********** Begin *********#b=np.arange(n);ret=np.array([b]*m)   #********** End **********#return ret

第2关:Numpy 数组的基本运算

任务描述

本关任务:学会 Numpy二维数组的一些基本操作。

相关知识

为了完成本关任务,你需要掌握:

  1. 向量与向量之间;
  2. 向量与标量之间。
    Numpy库可以直接进行一些四则运算,快速的处理两个 Numpy 数组:
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[4,5,6],[1,2,3]])

向量与向量之间

1. 加法
In:np.add(a,b) 或 a+b
Out:array([[5, 7, 9],[5, 7, 9]])
2. 减法
In:np.subtract(a,b) 或 a-b
Out:array([[-3, -3, -3],[ 3,  3,  3]])
3. 乘法(X乘)
In:np.multiply(a,b) 或 a * b
Out:array([[ 4, 10, 18],[ 4, 10, 18]])
4. 乘法(点乘)
a = np.array([[1,2,3],[4,5,6]])
b = np.array([4,5,6])
In: np.dot(a,b) 
Out:array([32, 77])
5. 除法
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[4,5,6],[1,2,3]])
In:np.divide(a,b) 或 a/b
Out:array([[ 0.25,  0.4 ,  0.5 ],[ 4.  ,  2.5 ,  2.  ]])

向量与标量之间

a = np.array([[1,2,3],[4,5,6]])
1. 加法
In:  a +1
Out:array([[2, 3, 4],[5, 6, 7]])
2. 减法
In:  a -1
Out:array([[0, 1, 2],[3, 4, 5]])
3. 乘法
In: a*2
Out:array([[ 2,  4,  6],[ 8, 10, 12]])
4. 除法
In: a/2
Out:array([[ 0.5,  1. ,  1.5],[ 2. ,  2.5,  3. ]])
5. 求余
In:a%2
Out:array([[1, 0, 1],[0, 1, 0]])
6. 矩阵转置
In:a.T
Out:array([[1, 4],[2, 5],[3, 6]])
7. 矩阵的逆

矩阵可逆的充要条件是矩阵满秩。

import numpy as np
import numpy.linalg as lg
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
In:lg.inv(a)
Out:array([[  3.15251974e+15,  -6.30503948e+15,   3.15251974e+15],[ -6.30503948e+15,   1.26100790e+16,  -6.30503948e+15],[  3.15251974e+15,  -6.30503948e+15,   3.15251974e+15]])

编程要求

本关的任务是,补全代码,以实现向量与标量相加和相乘的的功能。具体要求如下:

  • 函数接受三个参数,然后进行向量与标量之间的运算;

  • 本关的测试样例参见下文;

  • 本关设计的代码文件 cal.py的代码框架如下:

# 引入numpy库
import numpy as np
# 定义opeadd函数
def opeadd(m,b,n):'''实现加法参数:m:是一个数组b:是一个列表n:是列表中的索引你需要做的是 m+b[n]返回值:ret: 一个numpy数组'''    ret = 0# 请在此添加 创建多维数组 的代码 并赋值给ret#********** Begin *********##********** End **********#return ret# 定义opemul函数
def opemul(m,b,n):'''实现乘法参数:m:是一个数组b:是一个列表n:是列表中的索引你需要做的是 m+b[n]返回值:ret: 一个numpy数组'''ret = 0# 请在此添加 创建多维数组 的代码 并赋值给ret#********** Begin *********##********** End **********#return ret

测试说明

本关的测试过程如下:

  • 平台运行 step5/caltest.py文件,并以标准输入方式提供测试输入;

  • caltest.py文件调用 cal中的方法,平台获取 caltest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。

以下是平台对 step5/caltest.py的测试样例:

a= np.array([[1,2,3],[4,5,6]])
b = [1,2,3]

测试输入: add
预期输出:

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

测试输入:mul
预期输出:

[[ 2  4  6][ 8 10 12]]

运行代码

# 引入numpy库
import numpy as np
# 定义opeadd函数
def opeadd(m,b,n):'''参数:m:是一个数组b:是一个列表n:是列表中的索引你需要做的是 m+b[n]返回值:ret: 一个numpy数组'''    ret = 0#********** Begin *********#ret=m+b[n]#********** End **********#return ret
# 定义opemul函数
def opemul(m,b,n):'''参数:m:是一个数组b:是一个列表n:是列表中的索引你需要做的是 m*b[n]返回值:ret: 一个numpy数组'''ret = 0#********** Begin *********#ret=m*b[n]#********** End **********#return ret

第3关:Numpy 数组的切片与索引

任务描述

本关任务:从数组中选择指定的元素。

相关知识

为了完成本关任务,你需要掌握:数组的切片与索引。

数组的切片与索引

一维 Numpy数组的切片操作与 Python列表的切片一样。下面首先来定义数字 0``````1``````2 直到 8的数组,然后通过指定下标 3 7 来选择数组的部分元素,这实际上就是提取数组中值为 36 的元素。

In: import numpy as np
In: a = np.arange(9)
In: a[3:7]
Out: array([3,4,5,6])

同时用下标选择元素,下标范围从 07,并且下标每次递增 2,如下所示:

In: a[:7:2]
Out:array([0,2,4,6])

也可以像 Python数组一样,用负值下标来反转数组:

In: a[::-1]
Out: array([8,7,6,5,4,3,2,1,0])

对于二维数组的索引,类似与 Python 数组的列表:

In: a=np.array([[1,2,3],[4,3,2]])
In: a[1][0] 
Out:array([4])
In:a[1,:2]    #获取第1维的前2个元素
Out:array([4, 3])

编程要求

本关的任务是,补全代码,以实现 Numpy数组的索引功能的功能。具体要求如下:

  • 函数接受两个参数,然后返回切片找出的指定元素;
  • 本关的测试样例参见下文;
  • 本关设计的代码文件 ce.py的代码框架如下:
# 引入numpy库
import numpy as np
# 定义cnmda函数
def ce(a,m,n):'''参数:a:是一个Numpy数组m:是第m维数组的索引n:第m维数组的前n个元素的索引返回值:ret: 一个numpy数组'''ret = 0# 请在此添加切片的代码,实现找出多维数组a中第m个数组的前n个元素并赋值给ret#********** Begin *********##********** End **********#return ret

测试说明

本关的测试过程如下:

  • 平台运行 step2/cetest.py文件,并以标准输入方式提供测试输入;

  • cetest.py文件调用 ce中的 ce方法,平台获取 cetest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。

  • 预处理的数组

[[1,2,3,4,5],[7,8,9,10,11],[12,13,14,15]]

以下是平台对 step2/cetest.py的测试样例:

测试输入:
1
3
预期输出:

[7,8,9]

测试输入:
2
2
预期输出:

[12,13]

运行代码

# 引入numpy库
import numpy as np
# 定义cnmda函数
def ce(a,m,n):'''参数:a:是一个Numpy数组m:是第m维数组的索引n:第m维数组的前n个元素的索引返回值:ret: 一个numpy数组'''ret = 0# 请在此添加切片的代码,实现找出多维数组a中第m个数组的前n个元素 并赋值给ret#********** Begin *********#ret=a[m,:n]#********** End **********#return ret

第4关:Numpy 数组的堆叠

任务描述

本关任务:改变 Numpy数组的形状。

相关知识

为了完成本关任务,你需要掌握:

  1. 改变数组形状;
  2. 数组的堆叠。
    使用 Numpy,我们可以方便的更改数组的形状,比如使用 reshape()、ravel()、flatten()、transpose() 函数等。
    具体的使用如下:

改变数组形状

reshape()
import numpy as np
In: b = np.arange(24).reshape(2,3,4)
In: b
Out: array([[[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]],[[12, 13, 14, 15],[16, 17, 18, 19],[20, 21, 22, 23]]])
ravel()

拆解,将多维数组变成一维数组。

In:  b.ravel()
Out: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23])
flatten()

拉直,其功能与 ravel() 相同,但是 flatten() 返回的是真实的数组,需要分配新的内存空间,而 ravel() 仅仅是改变视图。

In:  b.flatten()
Out: array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,17, 18, 19, 20, 21, 22, 23])
shape()

使用元组改变数组形状。

In: b.shape = (6,4)
In: b
out: array([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11],[12, 13, 14, 15],[16, 17, 18, 19],[20, 21, 22, 23]])
transpose()

转置。

In: b.transpose()
Out: array([[ 0,  4,  8, 12, 16, 20],[ 1,  5,  9, 13, 17, 21],[ 2,  6, 10, 14, 18, 22],[ 3,  7, 11, 15, 19, 23]])

数组的堆叠

从深度看,数组既可以横向叠放,也可以竖向叠放。因此,我们我们对数组进行堆叠,Numpy 数组对堆叠包含以下几个函数:
首先,创建两个数组。

In: a = np.arange(9).reshape(3,3)
In: a
Out: array([[0, 1, 2],[3, 4, 5],[6, 7, 8]])
In: b = a*2
In: b
Out: array([[ 0,  2,  4],[ 6,  8, 10],[12, 14, 16]])
hstack()

水平叠加。

In: np.hstack((a,b))  # 注意 这里是两层括号
Out: array([[ 0,  1,  2,  0,  2,  4],[ 3,  4,  5,  6,  8, 10],[ 6,  7,  8, 12, 14, 16]])
vstack()

垂直叠加。

In: np.vstack((a,b))
Out:array([[ 0,  1,  2],[ 3,  4,  5],[ 6,  7,  8],[ 0,  2,  4],[ 6,  8, 10],[12, 14, 16]])
dstack()

深度叠加。

In: np.dstack((a,b))
Out: array([[[ 0,  0],[ 1,  2],[ 2,  4]],[[ 3,  6],[ 4,  8],[ 5, 10]],[[ 6, 12],[ 7, 14],[ 8, 16]]])

编程要求

本关的任务是,补全代码,分别实现 Numpy数组的垂直叠加、水平叠加、深度叠加。具体要求如下:

  • 函数接受两个参数,然后将两个参数进行叠加;
  • 本关的测试样例参见下文;
  • 本关设计的代码文件 manipulation.py的代码框架如下:
# 引入numpy库
import numpy as np
# 定义varray函数
def  varray(m,n):'''参数:m:是第一个数组n:是第二个数组返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的垂直叠加 并赋值给ret#********** Begin *********##********** End **********#return ret
# 定义darray函数
def  darray(m,n):'''参数:m:是第一个数组n:是第二个数组返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的深度叠加并赋值给ret#********** Begin *********##********** End **********#return ret# 定义harray函数
def  harray(m,n):'''参数:m:是第一个数组n:是第二个数组返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的水平叠加并赋值给ret#********** Begin *********##********** End **********#return ret

测试说明

本关的测试过程如下:

  • 平台运行 step3/manipulationtest.py文件,并以标准输入方式提供测试输入;

  • manipulationtest.py文件调用 manipulation中的三个方法,平台获取 manipulationtest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。

  • 预处理数组:

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

以下是平台对 step3/manipulationtest.py的测试样例:
测试输入: v
预期输出:

[[1 2 3][4 5 6][3 4 5][7 8 9]]

测试输入: d
预期输出:

[[[1 3][2 4][3 5]][[4 7][5 8][6 9]]]

运行代码

# 引入numpy库
import numpy as np
# 定义varray函数
def  varray(m,n):'''参数:m:是第一个数组n:是第二个数组返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的垂直叠加并赋值给ret#********** Begin *********#ret=np.vstack((m,n))#********** End **********#return ret
# 定义darray函数
def  darray(m,n):'''参数:m:是第一个数组n:是第二个数组返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的深度叠加并赋值给ret#********** Begin *********#ret=np.dstack((m,n))#********** End **********#return ret# 定义harray函数
def  harray(m,n):'''参数:m:是第一个数组n:是第二个数组返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的水平叠加并赋值给ret#********** Begin *********#ret=np.hstack((m,n))#********** End **********#return ret

第5关:Numpy 的拆分

任务描述

本关任务:对 Numpy数组进行拆分。

相关知识

为了完成本关任务,你需要掌握:拆分数组。

使用 Numpy,我们可以方便的对数组进行拆分,比如使用 hsplit()、vsplit()、dsplit()、split() 函数等。

拆分数组

准备数组。

import numpy as np
In: a= np.arange(9).reshape(3,3)
In: a
Out: array([[0, 1, 2],[3, 4, 5],[6, 7, 8]])
hsplit()

横向拆分。

In: np.hsplit(a,3)
Out:[array([[0],[3], [6]]), .  array([[1], [4],[7]]), array([[2],[5], [8]])]
vsplit()

纵向拆分。

In: np.vsplit(a,3)
Out: [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]
dsplit()

深度拆分。
深度拆分要求数组的秩大于等于 3

c= np.arange(27).reshape(3,3,3)
In: np.dsplit(c,3)
Out:[array([[[ 0],[ 3],[ 6]],[[ 9],[12],[15]],[[18],[21],[24]]]), array([[[ 1],[ 4],[ 7]],[[10],[13],[16]],[[19],[22],[25]]]), array([[[ 2],[ 5],[ 8]],[[11],[14],[17]],[[20],[23],[26]]])]

编程要求

本关的任务是,补全代码,分别实现 Numpy 数组的纵向拆分、横向拆分、深度拆分。具体要求如下:

  • 函数接受一个参数,然后将数组进行拆分;
  • 本关的测试样例参见下文;
  • 本关设计的代码文件 splitarray.py的代码框架如下:
# 引入numpy库
import numpy as np
# 定义varray函数
def  vsarray(m,n):'''参数:m:是第一个数组n:是需要拆分到的维度返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的纵向拆分并赋值给ret#********** Begin *********##********** End **********#return ret# 定义hsarray函数
def  hsarray(m,n):'''参数:m:是第一个数组n:是需要拆分到的维度返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的水平拆分并赋值给ret#********** Begin *********##********** End **********#return ret# 定义dsarray函数
def  dsarray(m,n):'''参数:m:是第一个数组n:是需要拆分到的维度返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的深度拆分并赋值给ret#********** Begin *********##********** End **********#return ret

测试说明

本关的测试过程如下:

  • 平台运行 step5/splitarraytest.py文件,并以标准输入方式提供测试输入;

-splitarraytest.py文件调用 splitarray中的三个方法方法,平台获取 splitarraytest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。

  • 预处理数组:

a= np.arange(9).reshape(3,3)

c = np.arange(27).reshape(3,3,3)

以下是平台对 step4/splitarraytest.py的测试样例:

测试输入: v

预期输出: [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

测试输入: h

预期输出: [array([[0],[3],[6]]), array([[1],[4],[7]]), array([[2],[5],[8]])]

运行代码

# 引入numpy库
import numpy as np
# 定义varray函数
def  vsarray(m,n):'''参数:m:是第一个数组n:是需要拆分到的维度返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的纵向拆分并赋值给ret#********** Begin *********#ret=np.vsplit(m,n)#********** End **********#return ret
# 定义darray函数
def  dsarray(m,n):'''参数:m:是第一个数组n:是需要拆分到的维度返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的深度拆分并赋值给ret#********** Begin *********#ret=np.dsplit(m,n)#********** End **********#return ret# 定义harray函数
def  hsarray(m,n):'''参数:m:是第一个数组n:是需要拆分到的维度返回值:ret: 一个numpy数组'''ret = 0# 请在此添加代码实现数组的水平拆分并赋值给ret#********** Begin *********#ret=np.hsplit(m,n)#********** End **********#return ret

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

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

相关文章

【老牌期刊】IF:12,持续飙升,同领域期刊中的“佼佼者“,国人友好!

01 期刊概况 ARTIFICIAL INTELLIGENCE REVIEW ​ 【出版社】Springer 【ISSN】0269-2821 【EISSN】1573-7462 【检索情况】SCI&EI&Scopus在检 【WOS收录年份】1988年 【出刊频率】双月刊,最新一期December 2023 【期刊官网】 https://link.springe…

【Linux】进程周边005之环境变量

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.环境变量是什么&#xff1…

【视点合成】代码解读:生成demo视频

变换工具 def render_3dphoto(src_imgs, # 输入的源图像,维度为 [batch_size, 3, height, width]mpi_all_src, # 输入的所有源图像的MPI,维度为 [batch_size, num_planes, 4, height, width]disparity_all_src, # 所有源图像的视差信息&…

【Python】从文本中提取数字

使用以下正则表达式的下列模式用以提取文本中包含的数字: pattern r[^\-\d]*([-]?\d([.,]\d)?).*模式 1:正整数 text 123 result re.match(pattern, text) print(result[1]) # > 123text 123 result re.match(pattern, text) print(result[…

【博士论文写作 笔记01】绪论的写作

文章目录 1.1 研究背景与意义1.2 国内外研究现状1.3 主要研究内容1.4 本文组织架构 1.1 研究背景与意义 介绍本文研究的需求 行业现状:首先介绍一下课题涉及的行业是怎样的蓬勃发展。新问题:由于这种蓬勃发展带来了什么样的新问题。总结句:…

太阳能电池效能IV测试PV检测太阳光模拟器

目录 概述 一、系统组成 产品特点: 技术参数 数字源表 本系统支持Keithley24xx系列源表 标准太阳能电池 低阻测试夹具 自动化测试软件 概述 太阳能光伏器件的所有性能表征手段中,IV特性测试无疑是最直观、最有效、最被广泛应用的一种…

【OS】操作系统总复习笔记

操作系统总复习 文章目录 操作系统总复习一、考试题型1. 论述分析题2. 计算题3. 应用题 二、操作系统引论(第1章)2.1 操作系统的发展过程2.2 操作系统定义2.3 操作系统的基本特性2.3.1 并发2.3.2 共享2.3.3 虚拟2.3.4 异步 2.4 OS的功能2.5 OS结构2.5 习…

Android studio 按键控制虚拟LED

一、activity_main.xml代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.a…

《Linux C编程实战》笔记:进程操作之创建进程

进程是一个动态的实体&#xff0c;是程序的一次执行过程。进程是操作系统资源分配的基本单位。 以下是一些概念&#xff0c;我就直接抄书了 进程是操作系统的知识&#xff0c;简单理解的话&#xff0c;你写的代码运行起来算一个进程&#xff1f; 创建进程 每个进程由进程ID号…

GPT-4.5!!!

GPT-4 还没用明白&#xff0c;GPT-4.5 就要发布了。 最近&#xff0c;OpenAI 泄露了 GPT-4.5 的发布页面&#xff0c;除了进一步增强复杂推理和跨模态理解&#xff0c;GPT-4.5 增加了一个更加强大的功能——3D。 3D 功能的进一步支持&#xff0c;也就意味着多模态最后一块版图…

工作中git工具分支和主干合并

克隆下载一个现有的 Git 仓库到本地 git clone ssh仓库地址下载后查看工作区状态包括哪些文件被修改、新增或删除等。 git status在本地建立我自己的分支&#xff08;取名Bms-Dev&#xff09;或者切换到指定的分支&#xff0c;才能提交到远程仓库上Bms-Dev的分支 git checko…

关于前端学习的思考-浮动元素嵌套块级元素12.18

1、块级元素嵌套浮动元素 先摆图片&#xff0c;当橘色的盒子高度减少的时候&#xff0c;NK AD TB PK NN并不会减少。如何解决呢&#xff1f; 加一个overflow&#xff1a;clip或者hidden 2、浮动元素嵌套块级元素 加一个overflow&#xff1a;clip或者hidden 综上所述&#xff0…

giee 添加公匙 流程记录

一、安装 百度网盘CSDN4文件夹下&#xff0c;或者官网下载&#xff1a;https://git-scm.com/downloads 二、生成密钥 1.右击打开git bash 2.$ ssh-keygen -t rsa -C “个人邮箱地址”&#xff0c;按3个回车&#xff0c;密码为空。 3.在C:\Users{windows用户名}.ssh目录下得到…

[Ray Tracing in One Weekend] 笔记

前言 本文参照自raytracing in one weekend教程&#xff0c;地址为&#xff1a;https://raytracing.github.io/books/RayTracingInOneWeekend.html 什么是光线追踪&#xff1f; 光线追踪模拟现实中的成像原理&#xff0c;通过模拟一条条直线在场景内反射折射&#xff0c;最终…

Poco SendHttpRequest PocoServer 2021-03-31

PocoServer // PocoHttpServer.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <Poco/Net/HTTPRequestHandler.h> #include <Poco/Net/HTTPRequestHandlerFactory.h> #include <Poco/Net/HTTPServerRequest.h> #include <…

面试题:vue3获取dom的方式

在 Vue 3 中&#xff0c;可以通过以下几种方式来获取 DOM 元素&#xff1a; 使用 ref&#xff1a;ref 是 Vue 3 中新增的响应式引用对象。可以通过给 DOM 元素添加 ref 属性来创建一个 ref 对象&#xff0c;并使用该对象来获取 DOM 元素的引用。 <template><div ref…

算法——分治

思想&#xff1a;分而治之&#xff0c;将大问题转化为若干个相同或相似的子问题。快排的题目常见的方法是利用三指针法将数组分三块搭配随机选择基准元素的思想 颜色分类&#xff08;分治_快排&#xff09; 颜色分类 题目解析 原地对它们进行排序&#xff0c;使得相同颜色的元…

Oracle-应用会话集中在RAC集群一个节点问题

问题&#xff1a; 用户一套Oracle19c RAC集群&#xff0c;出现一个奇怪的现象&#xff0c;通过SCAN IP访问的连接会话都集中在节点一实例&#xff0c;而且用户并没有做任何的节点服务访问去控制会话的连接节点&#xff0c;比如常见的通过集群的高可用服务去控制应用访问连接集中…

Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)

目录 一、前言 二、基于注解配置Bean 1.基本介绍 : 2.应用实例 : 3.注意事项 : 三、手动实现Spring 注解配置机制 1.需求 : 2.思路 : 3.实现 : 3.1 自定义注解类 3.2 自定义配置类 3.3 自定义容器类 3.4 在测试类中进行测试 四、自动装配 0.总述 : 1.AutoWired自动装…

LeetCode力扣每日一题(Java):69、x 的平方根

一、题目 二、解题思路 1、 我的思路 我的思路是直接循环暴力破解&#xff0c;定义计数器i&#xff0c;从1开始递增&#xff0c;直到i*i大于或等于x 于是有了如下代码 int i 1;while(true){if(i*i<x){i;}else if(i*ix){return i;}else{return i-1;}} 但提交之后超出了…