小白学习python——numpy

2023-10-27

零、初识numpy

1、numPy:Numerical Python,即数值Python包,是Python进行科学计算的一个基础包,所以是一个掌握其他Scipy库中模块的基础模块,一定需要先掌握该包的主要使用方式。(官网:http://www.numpy.org/)(官方文档:https://docs.scipy.org/doc/numpy/user/index.html)
2、NumPy模块是Python的一种开源的数值计算扩展,是一个用python实现的科学计算包,主要包括:
(1)一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组,称为ndarray(N-dimensional array object)
(2)用于对整组数据进行快速运算的标准数学函数:ufunc(universal function object)
(3)实用的线性代数、傅里叶变换和随机数生成函数。
(4)NumPy和稀疏矩阵的运算包Scipy配合使用更加方便。
3、NumPy核心数据结构:ndarray
(1)NumPy的数组类被称作ndarray。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。
(2)一种由相同类型的元素组成的多维数组,元素数量是实现给定好的
(3)元素的数据类型由dtype(data-type)对象来指定,每个ndarray只有一种dtype类型
(4)ndarray的大小固定,创建好数组后数组大小是不会再发生改变的

一、ndarray的创建

第一步:导入numpy库:import numpy as np
第二步:选择以下9中方法创建所需的ndarray
(1)np.array()

		print(np.array([1,2,3]))  	#用列表创建一维数组
		print(np.array((1,2,3))) 	#用元组创建一维数组
		print(np.array([[1,2,3],[3,4,5]])) 	#创建二维数组
		print(np.array([[[1,2,3],[3,4,5]], [[4,5,6],[7,8,9]]]))	 	#创建三维数组

运行结果:

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

(2)np.arange(m,n,p):创建一维数组;m为起点,默认值为0;n-1为终点;p为步长,默认值为1

		print(np.arange(9))		#一个参数时代表是n值
		print(np.arange(0,9,3))

运行结果:

		[0 1 2 3 4 5 6 7 8]

		[0 3 6]

(3)np.random.random((m,n,p)):创建随机数组,范围0-1之间,m为维数,默认为1; n为行数,默认为你1; p为列数,默认为你1.

		print(np.random.random())
		print(np.random.random((3,3)))
	    print(np.random.random((3,4,5)))

运行结果:

		0.8662175412604185
		
		[[0.39977554 0.53905535 0.98797601]
		 [0.30052583 0.48654865 0.52708454]
		 [0.79963669 0.57747023 0.60574091]]

	    [[[0.4739109  0.34896628 0.53766609 0.32580308 0.20995876]
		  [0.34513019 0.6905552  0.39049827 0.96181027 0.12415947]
		  [0.31232772 0.99593459 0.52628405 0.88970223 0.71259597]
		  [0.06166204 0.49729526 0.21848856 0.8274129  0.12596696]]
		 [[0.17472248 0.03599495 0.04836849 0.39497355 0.39231837]
		  [0.63703022 0.5226203  0.42291038 0.0780945  0.50046054]
		  [0.06722677 0.4903806  0.50076114 0.71733274 0.55196836]
		  [0.05347855 0.30551677 0.75455515 0.76474896 0.02347691]]
		 [[0.20968339 0.82138698 0.19611095 0.72279878 0.47167353]
		  [0.38738273 0.6984346  0.50095254 0.40237524 0.88877301]
		  [0.96705408 0.46714721 0.43656449 0.62625771 0.09937583]
		  [0.46108697 0.81385325 0.07755153 0.84041035 0.75572835]]]

(4)np.random.randint((m,n,size=(a,b))):创建随机整数数组,选值的范围是[m,n); a是数组的行;b是数组的列数

		print(np.random.randint(1,9, size=(3,4)))

运行结果:

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

(5)np.linspace(m,n,p):创建一维等差数列,m为起点;n-1为终点;p为步长,默认值为1.

		print(np.linspace(0,8,5))

运行结果:

		[0. 2. 4. 6. 8.]

(6)np.logspace(m,n,p,base):创建等比数列,m为幂次的起点,n-1为幂次的终点,p为数组的个数,base为幂次的底数,默认为10

		print(np.logspace(0, 2, 5))
		print(np.logspace(0, 5, 6, base=2))

运行结果:

		[  1.           3.16227766  10.          31.6227766  100.        ]
	    
		[ 1.  2.  4.  8. 16. 32.]

(6)np.zeros((m,n)):创建一个m*n初始值全部为0的数组

		print(np.zeros((3,4)))

运行结果:

		[[0. 0. 0. 0.]
		 [0. 0. 0. 0.]
		 [0. 0. 0. 0.]]

(7)np.ones((m,n)):ones创建一个m*n初始值全部为1的数组

		print(np.ones((3,3)))

运行结果:

		[[1. 1. 1.]
		 [1. 1. 1.]
		 [1. 1. 1.]]

(8)np.random.randn(m,n):创建一个标准正态分布的数组,m表示行数;n表示列数。

		print(np.random.randn(3,2))

运行结果:

		[[-1.16378384 -0.92897224]
		 [ 1.94134629  1.63933644]
		 [-1.2225152   0.24974909]]

(9)将一维矩阵(数组)转换成多维:reshape(m,n):改变矩阵是行数和列数,若m,n中有且只有一个为-1,表示自适应。

		arr1 = np.array([1,2,3,4,5,6,7,8]).reshape(2,-1)
		print(arr1)
        arr2 = np.arange(9).reshape(3,3)		#注意reshape的多维矩阵元素个数一定要和arange的元素个数保持一致!
		print(arr2)

运行结果:

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

二、用numpy创建的ndarray的相关方法和属性

第一步:ndarray的创建
第二步:创建的ndarray的相关方法和属性的使用:

1、arr.ndim:数组轴(维数)的个数,轴的个数被称为秩.

(1)arr = np.random.randint(1, 9, size=(3,3))
	print(arr.ndim)

输出结果:

	2

2、arr.shape:数组的维度, 例如一个2排3列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,
即维度或者ndim属性

(1)arr = np.random.randint(1, 9, size=(3,3))
	print(arr.shape)

输出结果:

	(3, 3)

3、arr.size:数组元素的总个数,等于shape属性中元组元素的乘积

 (1)arr = np.random.randint(1, 9, size=(3,3))
	print(arr.size)

输出结果:

	9

4、arr.dtype:一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。
不过NumPy提供它自己的数据类型。

 (1)arr = np.random.randint(1, 9, size=(3,3))
	print(arr.dtype)

输出结果:

	int32

5、arr.itemsize:数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8),
又如,一个元素类型为complex32的数组item属性为4(=32/8).

 (1)arr = np.random.randint(1, 9, size=(3,3))
	print(arr.itemsize)

输出结果:

	4

6、arr.astype():更改一个已经存在的数组的数据类型,从而得到一个新数组

 (1)arr = np.random.randint(1, 9, size=(3,3))
	print(arr.dtype)
	arr2 = arr.astype(float)
	print(arr2.dtype)

输出结果:

	int32
	float64

7、arr.reshape(m,n):改变矩阵是行数和列数,若m,n中有且只有一个为-1,表示自适应

 (1)arr = np.np.array([1,2,3,4,5,6,7,8])
	print(arr.reshape(2,4))
	arr = np.np.array([1,2,3,4,5,6,7,8])
	print(arr.reshape(2,-1))

输出结果:

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

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

8、矩阵的转置:arr.transpose()和arr.T

 (1)arr1 = np.arange(40).reshape(5,-1)
	 print(arr1)
	 arr2 = arr1.transpose()
	 print(arr2)
	 arr3 = arr1.T
	 print(arr3)

运行结果:

	 [[ 0  1  2  3  4  5  6  7]
	 [ 8  9 10 11 12 13 14 15]
	 [16 17 18 19 20 21 22 23]
	 [24 25 26 27 28 29 30 31]
	 [32 33 34 35 36 37 38 39]]
	[[ 0  8 16 24 32]
	 [ 1  9 17 25 33]
	 [ 2 10 18 26 34]
	 [ 3 11 19 27 35]
	 [ 4 12 20 28 36]
	 [ 5 13 21 29 37]
	 [ 6 14 22 30 38]
	 [ 7 15 23 31 39]]
	[[ 0  8 16 24 32]
	 [ 1  9 17 25 33]
	 [ 2 10 18 26 34]
	 [ 3 11 19 27 35]
	 [ 4 12 20 28 36]
	 [ 5 13 21 29 37]
	 [ 6 14 22 30 38]
	 [ 7 15 23 31 39]]

9、多维数组的索引和切片

 (1)arr1 = np.random.randint(1,9,size=(2,3,3))
	 print(arr1)
	 print(arr1[0,1,2]) 		#==print(arr1[0][1][2])
	 print(arr1[:,:,2])
	 print(arr1[:,1,1:3])

运行结果:

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

10、多维数组的花样索引:两种方法
(1)切片

		arr1 = np.random.randint(1,9,size=(8,4))
		print(arr1)
		print(arr1[[0,3,5],[0,3,2]])		#取(0,0)(3,3)(5,2)三个元素

运行结果:

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

(2)索引器.ix_()

		print(arr1[np.ix_([0,3,5],[0,3,2])])		#取(0,0)(0,3)(0,2);(3,0)(3,3)(3,2);(5,0)(5,3)(5,2)9个元素

运行结果:

		[[4 3 2]
		 [5 5 8]
		 [2 6 3]]

11、布尔索引
(1)

    arr1 = np.random.random((3,3))
	print(arr1)
	arr2 = arr1<0.5
	print(arr2)		

运行结果:

	[[0.86375266 0.97297189 0.80719292]
	 [0.36599514 0.39084747 0.05975864]
	 [0.93682142 0.14530861 0.32880287]]
	[[False False False]
	 [ True  True  True]
	 [False  True  True]]

(2)

    name = np.array(['Gerry', 'Tom', 'Jim'])
	scores = np.array([[88,86,96],
	                   [76,88,95],
	                   [90,85,92]])
	classes = np.array(['语文','数学','英语'])
	print('Gerry所有的成绩是:',scores[name == 'Gerry'])
	print('Gerry的数学成绩是:',scores[name == 'Gerry', classes == '数学'])
	print('Gerry和Tom的所有成绩是:',scores[(name == 'Gerry')|(name == 'Tom')])

运行结果:

	Gerry所有的成绩是: [[88 86 96]]
	Gerry的数学成绩是: [86]
	Gerry和Tom的所有成绩是: [[88 86 96]
	  [76 88 95]]

三、numpy的基本数据类型

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

四、ndarray与标量、ndarray与ndarray之间的运算

1、ndarray与标量之间的计算

(1)arr1 = np.array((1,2,3,4,5))
		 print(arr1+2)
	   	 print(arr1-3)
		 print(arr1*2)
		 print(arr1/2)
		 print(arr1**2)	

输出结果:

		 [3 4 5 6 7]
		 [-2 -1  0  1  2]
		 [ 2  4  6  8 10]
		 [0.5 1.  1.5 2.  2.5]
		 [ 1  4  9 16 25]

2、ndarray与ndarray之间的计算
(1)加法与乘法

	arr2 = np.array([[1,2,3],[4,5,6]])
	arr3 = np.array([[10,20,30], [40,50,60]])
	print(arr2+arr3)
	print(arr2*arr3)#相乘的两者结构相同

输出结果:

	[[11 22 33]
	 [44 55 66]]
	[[ 10  40  90]
	 [160 250 360]]

(2)点积:np.dot()函数

	arr1 = np.array(((1,2,3),
            				   (4,5,6),
            				   (7,8,9)))
	arr2 = np.array(((1,2),
	                          (3,4),
	                          (5,6)))
	print(np.dot(arr1,arr2))

输出结果:

	[[ 22  28]
	 [ 49  64]
	 [ 76 100]]

五、numpy中常用的一元二元函数

1、常见一元函数
在这里插入图片描述
在这里插入图片描述

2、常见二元函数
在这里插入图片描述
3、聚合函数
(1)定义:聚合函数是对一组值(eg一个数组)进行操作,返回一个单一值作为结果的函数。当然聚合函数也可以指定对某个具体的轴进行数据聚合操作;常将的聚合操作有:平均值、最大值、最小值、方差等等.
(2)例子
arr = np.array([[1,5,7,4],[0,6,3,8],[2,6,9,7]])
print(arr)
print(‘arr的最小值是:’,arr.min())
print(‘arr的最大值是:’,arr.max())
print(‘arr的平均值是:’,arr.mean())
print(‘arr的标准差差是:’,arr.std())
print(‘arr的方差是:’, np.power(arr.std(),2))
print(‘arr中每一行的最小值是:’,arr.min(axis=0)) #当axis=0表示行;axis=1表示列.
print(‘arr中每一行的最大值是:’,arr.max(axis=0))
print(‘arr中每一行的平均值是:’,arr.mean(axis=0)
print(‘arr中每一列的最小值是:’,arr.min(axis=1))
print(‘arr中每一列的最大值是:’,arr.max(axis=1))
print(‘arr中每一列的平均值是:’,arr.mean(axis=1))
运行结果:
[[1 5 7 4]
[0 6 3 8]
[2 6 9 7]]
arr的最小值是: 0
arr的最大值是: 9
arr的平均值是: 4.833333333333333
arr的标准差差是: 2.733536577809454
arr的方差是: 7.472222222222221
arr中每一行的最小值是: [0 5 3 4]
arr中每一行的最大值是: [2 6 9 8]
arr中每一行的平均值是: [1. 5.66666667 6.33333333 6.33333333]
arr中每一列的最小值是: [1 0 2]
arr中每一列的最大值是: [7 8 9]
arr中每一列的平均值是: [4.25 4.25 6. ]
(3)标准差、方差和协方差(有关更详细说明看https://blog.csdn.net/cqfdcw/article/details/78173839 )
A、计算公式:
标准差:
在这里插入图片描述
方差:是标准差的平方
协方差:
在这里插入图片描述
B、含义:
标准差:用来度量随机变量和其数学期望(即均值)之间的偏离程度。
方差:用来度量随机变量和其数学期望(即均值)之间的偏离程度。
协方差:衡量两个变量之间的变化方向关系。

4、np.where——np.where函数是三元表达式x if condition else y的矢量化版本
(1)arr1 = np.array([-1.1,-1.2,-1.3,-1.4,-1.5])
arr2 = np.array([-2.1,-2.2,-2.3,-2.4,-2.5])
condition = (arr1<arr2)
result1 = [x if c else y for (x,y,c) in zip(arr1, arr2, condition)] #用于一维数组,不能用于多维
result2 = np.where(condition, arr1, arr2) #适合任何维度
print(‘使用python语法,结果为:’, result1,’;数据类型为:’, type(result1))
print(‘使用np.where语法,结果为:’, result2,’;数据类型为:’, type(result2))
输出结果:
使用python语法,结果为: [-2.1, -2.2, -2.3, -2.4, -2.5] ;数据类型为: <class ‘list’>
使用np.where语法,结果为: [-2.1 -2.2 -2.3 -2.4 -2.5] ;数据类型为: <class ‘numpy.ndarray’>
(2)arr3 = np.array([
[1, 2, np.nan, 4],
[4, 5, 6, np.nan],
[7, 8, 9, np.inf],
[np.inf, np.e, np.pi, 4]
])
condition = np.isnan(arr3)|np.isinf(arr3)
print(arr3)
print(np.where(condition, 0, arr3))
运行结果:
[[1. 2. nan 4. ]
[4. 5. 6. nan]
[7. 8. 9. inf]
[ inf 2.71828183 3.14159265 4. ]]
[[1. 2. 0. 4. ]
[4. 5. 6. 0. ]
[7. 8. 9. 0. ]
[0. 2.71828183 3.14159265 4. ]]

5、np.unique——np.unique函数的主要作用是将数组中的元素进行去重操作(也就是只保存不重复的数据)
(1)arr1 = np.array([‘a’, ‘b’, ‘c’, ‘a’, ‘d’, ‘c’, ‘e’])
arr2 = np.unique(arr1)
print(‘原始数据:’, arr1)
print(‘去重之后的数据:’, arr2)
运行结果:
原始数据: [‘a’ ‘b’ ‘c’ ‘a’ ‘d’ ‘c’ ‘e’]
去重之后的数据: [‘a’ ‘b’ ‘c’ ‘d’ ‘e’]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小白学习python——numpy 的相关文章

  • scikit学习逻辑回归方程

    我已经在 iris 数据集上运行了逻辑回归 直到这段代码我才清楚 之后我想形成方程来对测试数据进行评分 该怎么做 我知道我可以使用预测函数对测试进行评分 但是我想查看参数和各自的权重 能否请你帮忙 from sklearn import d
  • ODFPy 文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要操作ODF文件格式 开放文档格式 开放办公室的内部格式 我需要用Python来完成 ODFPy
  • 在命令提示符中识别“Pip”,但在 PyCharm 终端中无法识别

    当我尝试在 Windows 命令提示符中运行 pip 时 pip V工作正常 但是当我尝试在 PyCharm 终端中运行它时 我得到 pip is not recognized as an internal or external comm
  • 如何在Python中获得更精确的十进制值[重复]

    这个问题在这里已经有答案了 from math import sqrt a 1e 8 b 10 c 1e 8 x1 b sqrt b 2 4 a c 2 a x2 b sqrt b 2 4 a c 2 a print x1 format x
  • swig char ** 作为指向 char * 的指针

    我在使用 swig 和 char 作为指向变量 char 的指针时遇到问题 而不是作为 char 的列表 我找不到将指针包装到 char 的方法 目的是将连接的结果写入指针引用的 char 中 以下是我的代码 文件指针 cpp includ
  • Plotly - 不同颜色的表面

    我正在尝试在 Plotly for Python 中绘制多个曲面 每个曲面具有不同的颜色 具体来说 表面显示了在相空间中不同点采取行动的预测奖励函数 由于我在每个点都有多个可能的操作 因此每个点都是不同的表面 我想对每个表面进行独特的着色
  • 在python中浏览ftp目录

    我正在尝试使用 ftplib 使用 Python 3 从 ftp 服务器下载多个文件夹 我有一个文件夹名称列表 它们都位于文件夹 root 中 问题是我不知道如何浏览它们 当我使用cwd我可以进入更深的目录 但是如何再次起来呢 我正在尝试得
  • Python - 在先前已在全局范围内查找的函数内重新分配名称

    为什么我在下面的第三个代码中出现错误 但在前两个代码中却没有出现错误 我使用的是 Python 3 6 0 Anaconda 4 3 1 64 位 Jupyter Code 1 c 100 def fib c 20 a c print a
  • python请求:重试直到收到有效响应

    我想知道是否存在重试请求一定次数的常见模式 可能由于服务器错误或网络不良而失败 我想出了这个 并且我愿意在那里找到更好的实现 cnt 0 while cnt lt 3 try response requests get uri if res
  • 如何读取 sql 查询到 pandas dataframe / python / django

    我在下面使用这个views py获取应用程序 from django db import connection def test request cursor connection cursor sql SELECT x n from ta
  • 如何将文本文件中的十六进制行转换为数组(Python)?

    我有一个文本文件 每行包含一个十六进制明文 我的文件如下所示 7a8e5dc390781eab8df2c090bf4bebca dbac0fba55d3d4fc177161bfe24dc7fb 82e5a7a021197f6fbe94a86
  • 如何在 PySide/PyQt 中制作一个位于屏幕中央的小部件?

    这段代码有效 但我想知道是否有更简单的方法 def center self qr self frameGeometry cp gui QDesktopWidget availableGeometry center qr moveCenter
  • Django外键:获取相关模型?

    是否可以通过外键字段本身获取外键的相关模型 例如 如果我有 3 个模型 class ModelA models Model field1 models CharField max length 10 class ModelB models
  • 您能否从函数、args 和 kwargs 确定变量将如何分配?

    我有一些样板逻辑 我想包装几个具有相同可选关键字的函数 现在看起来像下面的代码 但是 这仅处理 opt key 作为关键字传递的情况 而不是按位置传递 解决这个问题的一种方法是了解如何解决参数分配 是否有一些元函数接受函数 args 和 k
  • 如何使用 Python Flask-Security 使用 bcrypt 加密密码?

    我正在尝试使用 Flask Security 文档中的标准基本示例 并使其正常工作 除了密码以明文形式存储之外 我知道这一行 user datastore create user email email protected cdn cgi
  • VS Code Pylance 不突出显示变量和模块

    我正在使用带有 Python 和 Pylance 扩展的 VS Code 我遇到的问题是 Pylance 扩展没有对模块和数据框等内容进行语法突出显示 我希望顶部的模块为绿色 df 变量为蓝色 我正在使用默认的深色 颜色主题 这是我的 VS
  • Anaconda (Python) - Windows 10 上的 Cmder 集成

    我在 Windows 10 64 位上通过 Anaconda 让 Cmder 使用 Python 时遇到了一些麻烦 我让 Anaconda 工作得很好 测试过用 matplotlib 绘制一些东西 它与 Anaconda Prompt 一起
  • 如何使用 Python 3 在 OpenCV 3 上正确加载 cv2.KeyPoint 和描述符?

    有一天 我不得不恢复一个使用 OpenCV 3 和 Python 2 7 的旧项目 在此代码中 要加载 cv2 KeyPoint 我执行以下操作 import numpy as np import cPickle import cv2 ke
  • FileAllowed 不显示错误消息

    我正在使用 WTForms 我正在对文件上传应用验证 并将其限制为仅 jpg png 和 pdf 格式 但是 如果我输入不正确 则不会出现错误消息 我按照这个教程https flask wtf readthedocs io en stabl
  • 从另一个列表的元素创建一个新列表,引用后者的元素

    我想从前一个元素创建一个新列表 但不复制它们 这就是发生的事情 In 23 list range 10 In 24 list2 list 0 4 In 25 list Out 25 0 1 2 3 4 5 6 7 8 9 In 26 lis

随机推荐

  • MySQL多表操作练习题

    数据准备 CREATE table dept deptno INT PRIMARY KEY dname VARCHAR 14 loc VARCHAR 13 INSERT INTO dept VALUES 10 accounting new
  • QT开发(十九)——QT内存泄漏问题

    QT开发 十九 QT内存泄漏问题 一 QT对象间的父子关系 QT最基础和核心的类是 QObject QObject内部有一个list 会保存children 还有一个指针保存parent 当自己析构时 会自己从parent列表中删除并且析构
  • Java 反射 与 主要API

    控制你的大脑 控制你的行为 你会得到更多 收获很多 文章目录 一 反射相关的主要API 二 代码例子演示 三 反射测试类 一 反射相关的主要API API 名称 代表含义 Java lang class 代表一个类 java lang re
  • J-Tech Talk | 6.29首播 Python文档漫谈

    J Tech Talk 由 Jina AI 社区为大家带来的技术分享 围绕 Python 人工智能 深度学习等 给大家带来针对具体实战型问题的讲解 分享 Jina AI 在开发过程中所积累的经验 Github 的开源项目数不胜数 想要扩大项
  • 使用OPENLDAP C API修改 win2003 AD域(Active Directory)用户密码

    参考 http blog csdn net wzhwho article details 6209693 参考 http www 121 name LDAP html 参考 http pig made it com pig adusers
  • 单片机学习笔记1:单片机简介

    单片机 1 什么是单片机 单片机 Single Chip Microcomputer 是一种集成电路芯片 是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 存储器 RAM ROM 中断系统 I O接口电路 定时器 计数器等功
  • 图像分类(1),数据预处理

    本文介绍如何使用pytorh利用预训练模型进行图像分类 主要参考Transfer Learning Tutorial和 具体代码可以参考Image classification 下载代码文件 git clone https github c
  • Web自动化测试,怎样参数化?

    目录 1 读取 csv 文件 2 数据ddt参数化 2 1实施步骤 2 2代码举例 unittest框架 3 PO 模式 3 1介绍 3 2非po模式和po模式对比 3 3Po分层及彼此关系 3 4代码举例 非PO模式 3 5代码举例 PO
  • 计算机开机后发现不了硬盘 首先应该检查,电脑每次开机都检测硬盘,怎么关闭这项功能?...

    如何关闭硬盘开机检测 开机自检时可以通过以下方法关闭硬盘的智能状态 不检测是无法实现的 hard disk state at all 1 Boot into bios 通常按f1 f2 f9 del 键进入bios 2 在boot或adva
  • torch一些常见的环境问题

    前言 我们在使用torch的时候经常会遇到一些常见的错误 这里单独开一篇博客记录一下 以便日后翻阅 本文会不断更新 torch1 13 有时候pip 下某个包的时候经常会自动安装nvidia cublas cu11 11 10 3 66 于
  • const int *p和int * const p的区别(常量指针与指向常量的指针)

    对于指针和常量 有以下三种形式都是正确的 const char myPtr char A 指向常量的指针 char const myPtr char A 常量的指针 const char const myPtr char A 指向常量的常量
  • Kali使用Netdiscover探测局域网中存活主机

    1 netdiscover介绍 Netdiscover 是一个主动 被动的ARP 侦查工具 使用Netdiscover工具可以在网络上扫描IP地址 检查在线主机或搜索为它们发送的ARP请求 2 主动模式 主动模式顾名思义就是主动的探测发现网
  • 使用键值表实现通用流水号

    很多MIS系统 都需要用到流水号 一般的简单的流水号 由标识 日期 自增序号来组成 但如果考虑通用的话 就稍微复杂点儿的 需要考虑自定义日期格式 自增序号归1 自增序号溢出处理 前缀 中缀 后缀 并发访问 批量获取等 本文抽象出一个通用的生
  • Spring学习(三)IOC控制反转与DI依赖注入

    IOC Inversion of Control 控制反转 是spring的核心 贯穿始终 所谓IOC 对于spring框架来说 就是由spring来负责控制对象的生命周期和对象间的关系 传统开发模式 对象之间互相依赖 IOC开发模式 IO
  • eclipse 项目提示"Project facet Java version 1.8 is not supported"

    今天使用eclipse 工具 导入maven 项目 编译项目的时候提示 Project facet Java version 1 8 is not supported 第一步 排查eclipse 项目的编译版本 项目 properties
  • Angular-官方文档学习-1

    Angular 简介 AngularJS 是一个 JavaScript 框架 它可通过 AngularJS 通过 指令 扩展了 HTML 且通过 表达式 绑定数据到 HTML AngularJS 扩展了 HTML AngularJS 通过
  • 选择文件窗口,获取选择文件地址

    微信公众号原文 系统 Windows 7 软件 Excel 2010 学习路径图 针对之前的学习路径图 会针对的写一些文章 我们在做信息处理的时候 可能会涉及到多个其它文件 有的时候需要根据需求选择所需文件进行处理 今天我们就讲讲如何使用V
  • 软件测试的基本概念

    目录 一 什么是需求 二 什么是测试用例 三 什么是BUG 四 开发模型和测试模型 1 软件开发生命周期 2 软件开发的五大模型 2 1 瀑布模型 2 2螺旋模型 2 3增量模型 迭代模型 2 4 敏捷模型 3 软件测试的两大模型 3 1
  • 一个登录案例学会 Pinia

    Pinia 号称下一代的 Vuex 经过初步体验 发现相比于 Vuex Pinia 确实有了很大进步 最明显的就是删减了复杂的概念 简化了数据流转的过程 现在只剩下了 store state getters actions 这四个核心概念
  • 小白学习python——numpy

    零 初识numpy 1 numPy Numerical Python 即数值Python包 是Python进行科学计算的一个基础包 所以是一个掌握其他Scipy库中模块的基础模块 一定需要先掌握该包的主要使用方式 官网 http www n