• [技术干货] python list 切片倒着取的实现示例【转】
    引言在Python中,列表(List)是一种非常常用的数据类型,它可以存储多个值,并且可以通过切片操作来获取列表中的一部分元素。切片操作非常灵活,可以按照需要获取列表中的任意一段元素。本文将介绍如何使用切片操作来倒着取列表中的元素。流程下面是整个实现过程的流程图,我们将通过几个简单的步骤来实现列表的倒序取值。pie  title 实现步骤  "步骤1" : 了解列表切片  "步骤2" : 使用`[::-1]`进行倒序取值  "步骤3" : 示例和练习步骤1:了解列表切片在开始实现之前,我们首先要了解列表切片的基本用法。列表切片是通过指定索引范围来获取列表中的一部分元素,语法如下:1list[start:end:step]start:表示切片的起始位置,默认为0,即列表的第一个元素。end:表示切片的结束位置,默认为列表的长度,即获取到最后一个元素的下一个位置。step:表示切片的步长,默认为1,即按顺序获取元素。步骤2:使用[::-1]进行倒序取值要实现列表倒序取值,我们可以使用[::-1]来指定切片的步长为-1,这样就可以逆序获取列表中的元素。具体代码如下所示:1list[::-1]步骤3:示例和练习下面通过几个示例和练习来帮助你更好地理解和掌握列表倒序取值的方法。示例1:倒序打印列表元素假设我们有一个列表numbers,其中包含了一系列的数字。我们希望倒序打印出这些数字。可以使用切片的方式实现,代码如下:123numbers = [1, 2, 3, 4, 5]reversed_numbers = numbers[::-1]print(reversed_numbers)代码执行结果为:[5, 4, 3, 2, 1],即按照倒序打印了列表中的元素。练习1:获取列表的后三个元素假设我们有一个列表letters,其中包含了一系列的字母。我们希望获取列表中的后三个元素。可以使用切片的方式实现,代码如下:123letters = ['a', 'b', 'c', 'd', 'e']last_three_letters = letters[-3:]print(last_three_letters)代码执行结果为:['c', 'd', 'e'],即获取了列表中的后三个元素。练习2:获取列表中的偶数元素假设我们有一个列表numbers,其中包含了一系列的数字。我们希望获取列表中的所有偶数元素。可以使用切片的方式实现,代码如下:123numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]even_numbers = numbers[1::2]print(even_numbers)代码执行结果为:[2, 4, 6, 8, 10],即获取了列表中的所有偶数元素。
  • [技术干货] Python Fire中两种命令行参数灵活设置方式详解【转】
    前段时间,介绍过Python的Fire库,一个用来生成命令行工具的的库。请参考:Python Fire:自动生成命令行接口今天,针对命令行参数,补充两种更加灵活的设置方式。1. *args 型参数*args型的参数可以接受任意长度的参数。比如,模拟一个学校发送通知的功能: import fire  def notions(school, *names):     for name in names:         print(f"[{school} 通知] hello {name}")  if __name__ == "__main__":     fire.Fire(notions) 使用起来很灵活,$  python.exe .\fire-sample.py NJ大学 小红 小李 小张 小华[NJ大学 通知] hello 小红[NJ大学 通知] hello 小李[NJ大学 通知] hello 小张[NJ大学 通知] hello 小华$  python.exe .\fire-sample.py --school NJ大学 小红 小李 小张[NJ大学 通知] hello 小红[NJ大学 通知] hello 小李[NJ大学 通知] hello 小张$  python.exe .\fire-sample.py --school NJ大学 小红 小李 小张 小华[NJ大学 通知] hello 小红[NJ大学 通知] hello 小李[NJ大学 通知] hello 小张[NJ大学 通知] hello 小华$  python.exe .\fire-sample.py 小红 小李 --school NJ大学 小张 小华[NJ大学 通知] hello 小红[NJ大学 通知] hello 小李[NJ大学 通知] hello 小张[NJ大学 通知] hello 小华从上面使用的示例可看出,可以不输入参数名称(比如第一个例子),按照顺序第一参数赋值给school,其余的赋值给*names。*names参数支持不定长度的值school参数指定参数名的话,可以放在任意的位置(比如上面第四个例子)。2. **kwargs 型参数**kwargs 型参数也是不定长度的,和*args型参数不同的地方在于,使用**kwargs型参数时,需要指定参数名称。比如,模拟一个显示学生成绩的功能: import fire  def scores(cls, **students):     for k, v in students.items():         print(f"[{cls} 成绩] {k}: {v}")  if __name__ == "__main__":     fire.Fire(scores) 使用示例如下:$  python .\fire-sample.py 初三1班 --小红 98 --小李 89 --小王 100[初三1班 成绩] 小红: 98[初三1班 成绩] 小李: 89[初三1班 成绩] 小王: 100$  python .\fire-sample.py --小红 98 --小李 89 --小王 100  初三1班[初三1班 成绩] 小红: 98[初三1班 成绩] 小李: 89[初三1班 成绩] 小王: 100$  python .\fire-sample.py --小红 98 --小李 89 --小王 100 --cls 初三1班[初三1班 成绩] 小红: 98[初三1班 成绩] 小李: 89[初三1班 成绩] 小王: 100cls参数可以不指定名称,也可以放在任意位置上。**students参数则必须指定参数名称,但参数名称不固定,参数的个数也不固定。
  • [技术干货] Python/Tensorflow/Keras/pytorch/Numpy/Sklearn知识总结【转】
    Python知识总结教程菜鸟教程:Python 字典(Dictionary)数据类型在python3中按数据类型的可变与不可变大致分为如下几种类型,前面已经介绍了另外几种了。今天讲讲set。不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)Python中集合set的使用详解_python 集合_涤生大数据的博客-CSDN博客定义变量灰灰:在Python中指定变量类型Python 字典(Dictionary)定义类Python 面向对象 | 菜鸟教程迭代器迭代器与生成器_def __iter__(self):_意念回复的博客-CSDN博客lambdalambda在Python编程中使用的频率非常高,我们通常提及的lambda表达式其实是python中的一类特殊的定义函数的形式,使用它可以定义一个匿名函数。即当你需要一个函数,但又不想费神去命名一个函数,这时候,就可以使用 lambda了。例如g=lambda x : x+1python中lambda的用法_lambda函数python_abyss-phospherus的博客-CSDN博客defaultdictPython collections模块之defaultdict()详解咕泡人工智能:Python中defaultdict的用法分析详解OrderedDictpython中的collections模块OrderedDict字典功能_from collections import ordereddict_Vertira的博客-CSDN博客setattr、getattrPython setattr() 函数argparseaction='store_true' 这个参数给“--cuda” 这设置了默认值ture,这样这个参数就不用像其他参数一样给等号和默认值了,当然类似还有还有action='store_false';zip合并两个元组,返回一个元组;sortedPython sorted函数及用法https://docs.python.org/zh-cn/3/howto/sorting.htmlenumerate对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值python enumerate用法总结Python内置函数之enumerate() 函数Next【Python】next() 函数filter详解 Python 中的 filter() 函数map会根据提供的函数对指定序列做映射,在写返回值等需要转换的时候比较常用Python map() 函数 | 菜鸟教程isinstancePython中的isinstance()函数_python isinstance_DaYinYi的博客-CSDN博客withwith还可以很好的处理上下文环境产生的异常python中with关键字详解_python with_今天上上签的博客-CSDN博客Python中with的用法_python with函数_Ego_Bai的博客-CSDN博客startwithPython 字符串 startswith() 使用方法及示例random.samplepython中random.sample函数的使用方法-python中的随机函数random的用法示例_weixin_39559097的博客-CSDN博客random.shuffleAmihua Lau:如何理解Python中的Shuffle函数@property我们可以使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止属性被修改。Zhihao:python @property的介绍与使用ValueErrorpython.异常解读_raise valueerror_随机重组的博客-CSDN博客eval村长:Python:eval函数 - 概念、用法、注意事项import gc垃圾回收:Python的gc模块_import gc_一人在山旁的博客-CSDN博客argsort从小到大排序,返回的是索引Numpy中argsort()函数的用法_numpy argsort_SophiaCV的博客-CSDN博客sys.stdout.flush()sys.stdout.flush()_wuguangbin1230的博客-CSDN博客from joblib import Parallel, delayed半个冯博士:Python之并行--基于joblibPython multiprocessingPython多进程multiprocessing模块介绍什么是 Multiprocessingimport six解决Python2和Python3的兼容问题Python中six模块基础用法 / 张生荣Pkl文件读写python数据处理方法--pkl格式文件_pkl文件_Top Secret的博客-CSDN博客Python函数中的->none它是一个对函数的类型注解,简单表示方法什么都不返回。这个类型注解是在Python3.5介绍进来的。注解表示函数的返回类型,用标识符-> 。它是可选的,如果删掉,什么都不会影响函数参数中的冒号作用是参数的类型建议符,函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型,类型建议符并非强制规定和检查,也就是说即使传入的实际参数与建议参数不符,也不会报错,但会有警告。单下划线、双下划线、头尾双下划线说明“单下划线” 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;“双下划线” 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据;Python 面向对象 | 菜鸟教程python中使用下划线命名的规则_python下划线函数命名规范-CSDN博客** 和* 的使用方法单个的星号*操作,表示展开一个可迭代的数据,双星号如果在函数定义时,做为输入,可以用来匹配关键字参数,并且在调用时候,将关键字参数的关键字和输入值,组成字典https://baijiahao.baidu.com/s?id=1725003420720762970&wfr=spider&for=pc类特殊方法__getitem__在类中定义了这个__getitem__ 方法,那么它的实例对象(假定为p),可以像这样p[key] 取值,当实例对象做p[key] 运算时,会调用类中的方法__getitem____getitem__的作用_Takoony的博客-CSDN博客包的注册PyPI · The Python Package Index操作步骤:如何将python代码打包成pip包(可以pip install) - Python技术站字典判断key是否存在在python2.0和python3.0的区别解决运行出现'dict' object has no attribute 'has_key'问题cPickle在python2和3不一样python报错:ModuleNotFoundError: No module named ‘cPickle‘python3中iteritems()被items()代替AttributeError: 'dict' object has no attribute 'iteritems'损失函数:Factal loss、triple loss 、contrastive loss机器学习中的损失函数(Loss Function)介绍、说明phynlp:focal loss 通俗讲解 Focal loss 解决难样本问题深度学习方法(十九):一文理解Contrastive Loss,Triplet Loss,Focal Losstensorflow知识总结TF flags的简介 :TF flags的简介_tf.flags_IT界的小小小学生的博客-CSDN博客TF tf.nn.embedding_lookupskye:tf.nn.embedding_lookuptf.nn.embedding_lookup() 详解 有点看不懂Keras知识总结官方网站https://keras-cn.readthedocs.io/en/latest/https://keras.io/zh/Keras的损失函数binary_crossentropycategorical_crossentropysparse_categorical_crossentropyKeras documentation: LossesKeras FlattenTensorFlow 2.9的零零碎碎(二)-读取MNIST数据集Pytorch知识总结lstm和gru的代码https://github.com/emadRad/lstm-gru-pytorch/blob/master/lstm_gru.ipynbrnn代码basicv8vc:读PyTorch源码学习RNN(1)squeeze 和unsqueezepython中的unsqueeze()和squeeze()函数_python unsqueeze_费马定理的博客-CSDN博客VariablePytorch的Variable详解_pytorch variable_Miss_zhuo_的博客-CSDN博客view详解Pytorch中的view函数_pytorch view_信小海的博客-CSDN博客view 和reshape的区别: view要求连续,view可以做的reshape都可以PyTorch:view() 与 reshape() 区别详解chunkpytorch中张量的分块.chunk()方法和拆分.split()方法_算法程序员&mlh的博客-CSDN博客Split stack catPyTorch常用张量切割和拼接方法(torch.chunk、torch.split、torch.cat和torch.stack用法详解)_torch.split chunk_Coding_Qi的博客-CSDN博客nn.embedding关于nn.Embedding的解释,以及它是如何将一句话变成vector的_迷茫终会遇见光的博客-CSDN博客torch.autograd.Variablezcyanqiu:Pytorch入坑二:autograd 及Variable损失函数nn.NLLLossnn.MSELoss()PyTorch语法总结1、变量定义括号的问题import torch a=torch.zeros(2,2) print(a) b = torch.zeros((2, 2)) print(b) c=torch.Tensor(2,2) print(c) ones = torch.ones(2, 3) print(ones) 输出: tensor([[0., 0.], [0., 0.]]) tensor([[0., 0.], [0., 0.]]) tensor([[0., 0.], [0., 0.]]) tensor([[1., 1., 1.], [1., 1., 1.]])b相比a增加了一个括号,但是a和b的值是一样的,因为zeros、rand、ones函数还有第二个参数dtype=torch.float32,默认不写dtype是float32,所以b外面的括号是为dtype准备,但是Tensor是不能有第二层括号的2、CNN里面填充padding的问题import torch import torch.nn.functional as F from torch.nn.parameter import Parameter from torch import nn a=torch.rand((2,2)) print("a的取值:\n",a) print("a的形状:\n",a.shape) c=F.pad(a, (1,) *4 ) print("a padding的形状:\n",c) c=F.pad(a, (2,) *4 ) print("a padding的形状:\n",c) c=F.pad(a, (2,) *2 ) print("a padding的形状:\n",c) 输出: a的取值: tensor([[0.3547, 0.9272], [0.8524, 0.6237]]) a的形状: torch.Size([2, 2]) a padding的形状: tensor([[0.0000, 0.0000, 0.0000, 0.0000], [0.0000, 0.3547, 0.9272, 0.0000], [0.0000, 0.8524, 0.6237, 0.0000], [0.0000, 0.0000, 0.0000, 0.0000]]) a padding的形状: tensor([[0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000], [0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000], [0.0000, 0.0000, 0.3547, 0.9272, 0.0000, 0.0000], [0.0000, 0.0000, 0.8524, 0.6237, 0.0000, 0.0000], [0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000], [0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000]]) a padding的形状: tensor([[0.0000, 0.0000, 0.3547, 0.9272, 0.0000, 0.0000], [0.0000, 0.0000, 0.8524, 0.6237, 0.0000, 0.0000]])3、max函数import numpy as np import torch d1=np.array([[10,12,42],[20,22,21]]) d2=torch.Tensor(d1) ''' print(d1) print(d2) print(d2.shape) print(d2.dtype) ''' print(d2.max(0)) print(d2.max(0)[0]) print(d2.max(0)[1]) print(d2.max(1)) print(d2.max(1)[0]) print(d2.max(1)[1]) print("---z---") z=torch.randn(3,2) print(z) print("---z0:列最大值---") z0=torch.max(z,0) print(z0) print("---z1:行最大值---") z1=torch.max(z,1) print(z1) 输出: torch.return_types.max( values=tensor([20., 22., 42.]), indices=tensor([1, 1, 0])) tensor([20., 22., 42.]) tensor([1, 1, 0]) torch.return_types.max( values=tensor([42., 22.]), indices=tensor([2, 1])) tensor([42., 22.]) tensor([2, 1]) ---z--- tensor([[-2.0111, -2.2075], [ 0.5392, -1.4854], [-1.6332, 0.7663]]) ---z0:列最大值--- torch.return_types.max( values=tensor([0.5392, 0.7663]), indices=tensor([1, 2])) ---z1:行最大值--- torch.return_types.max( values=tensor([-2.0111, 0.5392, 0.7663]), indices=tensor([0, 0, 1]))两种方式的输出是一样的,0表示列的最大值,1表示行的最大值。0表示第0维的最大值,每个子数组出一个数算大值;1表示第1维的最大值,也就是每个子数组内部的最大值;4、激活函数:机器学习中的数学--激活函数:基础知识_von Neumann的博客-CSDN博客· 激活函数(一):Sigmoid函数· 激活函数(二):双曲正切函数(Tanh函数)· 激活函数(三): 线性整流函数(ReLU函数)· 激活函数(四):Leaky ReLU函数· 激活函数(五):ELU函数· 激活函数(六):Parametric ReLU(PReLU)函数· 激活函数(七):Softmax函数· 激活函数(八):Swish函数· 激活函数(九):Maxout函数· 激活函数(十):Softplus函数· 激活函数(十一):Softsign函数· 激活函数(十二):高斯误差线性单元(GELUs)5、softmax和log_softmaxa = torch.tensor([1,2,3]).to(dtype=torch.float) m = torch.nn.functional.softmax(a,dim=0) print(m) print(np.log(m)) n = torch.nn.functional.log_softmax(a,dim=0) print(n) tensor([0.0900, 0.2447, 0.6652]) tensor([-2.4076, -1.4076, -0.4076]) tensor([-2.4076, -1.4076, -0.4076])另外有nn.softmax、nn.LogSoftmax,见参考资料另外有torch.softmax参考资料:悲恋花丶无心之人:Pytorch中Softmax和LogSoftmax的使用6、数据类型转换a=torch.tensor([5,5,5,5]).float()a = torch.tensor([1,2,3]).to(dtype=torch.float)7、torch.t() 和T的一样的功能import torch x = torch.randn(3) print(x) print(torch.t(x)) y = torch.randn(3,2) print(y) print(torch.t(y)) print(y.T) tensor([-1.6476, 1.1906, 0.1228]) tensor([-1.6476, 1.1906, 0.1228]) tensor([[-0.5570, -2.0694], [-0.0040, 1.2698], [ 0.6442, -0.6746]]) tensor([[-0.5570, -0.0040, 0.6442], [-2.0694, 1.2698, -0.6746]]) tensor([[-0.5570, -0.0040, 0.6442], [-2.0694, 1.2698, -0.6746]])8、矩阵相乘torch.mul(a, b) 是矩阵a和b对应位相乘,a和b的维度必须相等,比如a的维度是(1, 2),b的维度是(1, 2),返回的仍是(1, 2)的矩阵,和a*b效果相同。其实这个矩阵或者向量的乘法操作就是H a d a m a r d HadamardHadamard乘积哈达玛乘积,具体操作细节查看这个。这个操作跟乘以b一样。torch.mm(a, b) 是矩阵a和b矩阵相乘,比如a的维度是(1, 2),b的维度是(2, 3),返回的就是(1, 3)的矩阵。这个操作很熟悉了,这就是很常用的矩阵运算。a=torch.rand(2,3) b=torch.rand(3,2) print(a) print(b) print(torch.mm(a,b)) print(torch.mul(a,a)) print(a.mul(a)) print(a.mm(b)) tensor([[0.2305, 0.7968, 0.6431], [0.5067, 0.4500, 0.1823]]) tensor([[0.1817, 0.0226], [0.2435, 0.0668], [0.4888, 0.8507]]) tensor([[0.5502, 0.6056], [0.2907, 0.1966]]) tensor([[0.0531, 0.6349, 0.4136], [0.2568, 0.2025, 0.0332]]) tensor([[0.0531, 0.6349, 0.4136], [0.2568, 0.2025, 0.0332]]) tensor([[0.5502, 0.6056], [0.2907, 0.1966]])9、损失函数CrossEntropyLoss 和NLLLoss的区别ShuYini:Pytorch常用的交叉熵损失函数CrossEntropyLoss()详解softmax+log_nllloss=crossentropyloss10、关于熵、相对熵、交叉熵的定义事件的信息量定义为期望,很多事件的期望用熵来标识LK散度就是相对熵,相对熵=熵+交叉熵蔡杰:简单的交叉熵,你真的懂了吗?Numpy知识总结Numpy np.concatenate:np.concatenate() 使用说明Numpy np.linspace:构造等差数列【Python】np.linspace用法介绍-CSDN博客Numpy np.resize(3,3)python resize函数怎么用_Python numpy.resize函数方法的使用sklearn知识总结sklearn sklearn.preprocessing.LabelEncodersklearn.preprocessing.LabelEncoder_一切都是毛毛雨的博客-CSDN博客plot知识总结plt.plot() 函数详解_YandexOj的博客-CSDN博客问题:Rnn一个batch内的各个序列是串行、还是并行执行?如果并行,也就是各个序列直接不共享参数,和RNN把上个时刻的输出作为下个时刻的输入的思想不一致;如果串行,速度很慢,batch的定义就没必要出现了,一个各个序列上就行了。《Python3.7 编程快速入门》 潘中强 清华大学出版社第一章 简介特性:缩进,序列,动态性,匿名、嵌套函数,自省2和3的别:3定义个格式print("abc"),数据类型上只有int没有long,3还有range,第二章 基础知识数据类型:int float 字符串 列表 函数第三章 内置类型bool, int , float,复杂类型,None类型type(a)容器:(1)序列容器:6种,string,unicode,list(列表),tuple(元组),buffer,range列表[] ,元组()元素不能改(2)关联容器:dict(字典) set(集合)set([1,2,3]) 无序唯一的存放元素第4章 流程控制和函数if for while break contine函数 lambda第5章 类和对象类、实例、方法构造函数__init__,析构函数__del__继承:单一继承、多重继承、方法重载关联和依赖第6章 异常try except else final第7章 模块和包模块对应文件,包对应文件夹,包下方__init__.py 文件保障记录包下的所有模块import module,form module import fun,区别在于后者在引用是不用一直写module第8章 元类型和新类型(1)元类型 type(2)新类型:实例方法,第一个参数是self,只有实例可调用类方法,第一个参数是类本身,默认cls,类可以调用&一个参数是self静态方法 ,不需要一个参数是self,类可以调用&一个参数是self第9章 迭代器、生成器、修饰器迭代器 __iter__ next生成器 yield修饰器 (Decorator) @第十章 多线程 threading第十一章 文件与目录 os第十二章 正则表达式 re第十三章 网络编程 socket第十四章 爬虫 urlibPYG安装过程记录&使用1、安装torch_geometric 1、查看cuda版本: cat /usr/local/cuda/version.txt CUDA Version 10.0.130 或者: nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2018 NVIDIA Corporation Built on Sat_Aug_25_21:08:01_CDT_2018 Cuda compilation tools, release 10.0, V10.0.130 2、查看python版本: import os import sys print(sys.version) print(torch.__version__) print(os.system(f'nvcc --version')) 3、参看torch版本: >>> import torch >>> torch.__version__ '1.4.0' >>> torch.cuda.is_available() False >>> torch.version.cuda '10.1' 4、torch_geometric的安装: 主要参考资料:https://blog.csdn.net/BLvren_/article/details/121923950 问题处理参考:https://github.com/pyg-team/pytorch_geometric/issues/1125 环境变量: $echo $LD_LIBRARY_PATH :/lib:/lib64:/usr/lib64:/usr/lib:/root/miniconda3/lib/:/root/miniconda3/lib/python3.6/site-packages/aistudio_common/reader/libs/:/opt/taobao/java/jre/lib/amd64/server/:/usr/local/cuda/lib64:/usr/local/lib 下载: wget https://data.pyg.org/whl/torch-1.4.0%2Bcu101/torch_sparse-0.6.1-cp36-cp36m-linux_x86_64.whl 安装: python -m pip install --user "torch_sparse-0.6.1-cp36-cp36m-linux_x86_64.whl" 安装中报错: 例如: OSError: libcusparse.so.10: cannot open shared object file: No such file or directory 例如: gcc: error: unrecognized command line option ‘-std=c++14’ error: command 'gcc' failed with exit status 1 原因分析:有cuda、torch、torch_cluster、torch_scatter、torch_sparse、torch_spline_conv有版本依赖关系, 参考上面资料,卸载后全部重新安装; 安装cuda: conda install cudatoolkit=10.0 安装pytorch: --如果直接pip install pytorch 最后检查cuda版本还是10.1,使用如下方法安装pytorch conda install pytorch torchvision cudatoolkit=10.0 -c pytorch 各种折腾还是不行; --------------------------- 最后处理方法,还是按照官方的文档: pip install torch -U >>> import torch >>> torch.__version__ '1.11.0+cu102' >>> torch.cuda.is_available() False >>> torch.version.cuda '10.2' $nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2018 NVIDIA Corporation Built on Sat_Aug_25_21:08:01_CDT_2018 Cuda compilation tools, release 10.0, V10.0.130 具体文档: https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html 操作命令: pip install torch-scatter -f https://data.pyg.org/whl/torch-1.11.0+cu102.html pip install torch-sparse -f https://data.pyg.org/whl/torch-1.11.0+cu102.html pip install torch-geometric pip install torch-cluster -f https://data.pyg.org/whl/torch-1.11.0+cu102.html pip install torch-spline-conv -f https://data.pyg.org/whl/torch-1.11.0+cu102.html 又报错了... OSError: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by /root/miniconda3/lib/python3.7/site-packages/torch_spline_conv/_basis_cuda.so) ________________ 最后最后的处理方法: 核心问题:官方文档提示如下图pytorch>1.8版本,用1.10.0版本安装成功了。 pip install torch==1.10.0 torchvision pip install torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-1.10.0+cpu.html from torch_geometric.datasets import TUDataset from torch_geometric.data import DataLoader 总结安装核心要点: 看官网文档,仔细、仔细、仔细看官网文档 看日志报错内容 再网上参考各种帖子 学习资料:External Resources斯坦福课程作业:https://medium.com/stanford-cs224w/recommender-systems-with-gnns-in-pyg-d8301178e3772、PYG入门教程Introduction by Exampleplantoid数据集不能引入的问题处理方法:PyG的Planetoid无法直接下载Cora等数据集的3个解决方式_诸神缄默不语的博客-CSDN博客_cora数据集下载3、网站信息pytorch官网:PyTorchPYG :PyG Documentation4、图机器学习的标准和会议OBG :https://ogb.stanford.edu/会议:https://logconference.org/5、查看GPU工作状态nvidia-smiwatch -n 0.5 nvidia-smilinux查看GPU使用情况 linux如何查看GPU使用情况6、sparse特征在ogbn-arxiv数据集上,边的特征用稀疏特征比用稠密特征准确率可以可以30%->60%,效果非常明显
  • [技术干货] Weautomate调用脚本利用paddleocr识别文字报:找不到指定模块
    1)写了一个python脚本里面调用paddleocr进行了识别;使用本机安装3.8python,识别正常;2)使用Weautomate使用调研python脚本的控件脚本调用这个脚本,报错,发现Weautomate的python是3.9版本的,要单独装paddlepaddle和paddleocr,3)到Weautomate安装目录下:C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\,调用python pip装好之后,用import测试,import paddlepaddle不报错了,但import paddleocr报错:import paddleocrTraceback (most recent call last):File "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\paddleocr\paddleocr.py"    line 48, in <module>from tools.infer import predict_systemFile "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\paddleocr    ools\infer\predict_system.py"    line 32, in <module>import tools.infer.predict_rec as predict_recFile "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\paddleocr    ools\infer\predict_rec.py"    line 31, in <module>from ppocr.postprocess import build post processFile "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\paddleocr\ppocr\postprocess\    init .py    line 24, in <module>from .db postprocess import DBPostProcess, DistillationDBPostProcessFile "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\paddleocr\ppocr\postprocess\db postprocess.py"    line 25, in <module>from shapely.geometry import PolygonRila "C.\Program RilacAHnawai\WoAntamatal&tudin 4 1 N\mwthan)1ih\eite-packages\shapely\    init_.py", line 27, in <module>from shapely.lib import GEOSException  # NOQAImportError: DLL load failed while importing lib: 找不到指定的模块。导入shapely的类库报错,百度查有类似说要下载个对应版本的shapely库,在这个位置:https://www.lfd.uci.edu/~gohlke/pythonlibs/64windows python3.9就下载这个Shapely‑1.8.2‑cp39‑cp39‑win_amd64.whl4)下载好后,用whl,安装好,用import paddleocr继续测试,报错:找不到文件,但这个dll在目录中是有的File "<stdin>", line 1, in <module> File "C:\Program Files Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\paddleocr\_init_.py", line 14, in mS from paddleocr import *File C:Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site packages\paddleocr \paddleocr.py", line 48, in <(module> from tools.infer import predict systemFile "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\paddleocr ools\infer\predict_system.py", line 32, in <module>s import tools infer.predict rec as predict recFile "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\paddleocr ools\infer\predict_rec.py", line 31, in <module> from ppocr.postprocess import build post processFile "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\paddleocr\ppocr\postprocess\_init_.py", line 24, in <modulec 英 from db postprocess import DBPostProcess, DistillationDBPostProcessFile "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\paddleocr\ppocr\postprocess\db postprocess.py", line 25, in <module> from shapely.geometry import PolygonFile "C:\Program Files Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\shapely\geometry\_init_.py", line 4, in <module>c from base import CAP STYLE, JOIN STYLE File "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\shapely\geometry\base.py", line 20, in <module> from shapely.coords import CoordinateSequenceFile "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\shapely\coords.py", line 10, in <module> from shapely.geos import lgeos File "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\site-packages\shapely\geos.py , line 175, in <module> geos CDLL("geos c.d11")File "C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\python\lib\ctypes\_init py", line 374, in init self. handle = dlopen(self. name, mode) ileNotFoundError: Could not find modul ’ geos c.d1l or one of its dependencies). Try using the full path with constructor syntax.继续百度发现有类似问题:https://blog.csdn.net/weixin_46133643/article/details/125498541python3.6环境中运行是没有问题的,但是python3.8环境中会报错。具体原因在于python3.8变更了Windows下动态链接库(DLL)的加载规则。新的规则提高了安全性,默认情况下仅能从可信的位置加载DLL依赖,一定程度上比避免诸如DLL劫持之类的安全风险。解决办法修改脚本,增加winmode=0if platform.system().lower() == 'windows':self.lib = CDLL('./platform/percipio_cam.dll', winmode=0)5)修改报错中的调用脚本,修改后用 import paddleocr测试通过6)Weautomate中调用脚本发现还需要下周识别的训练文件,脚本写的训练文件是放在“.”目录下(如下),一开始找不到Weautomate的"."目录,脚本中增加语句print(os.getcwd()),打印这个目录在C:\Program Files\Huawei\WeAutomate\Studio 4.1.0\Robot这个目录下,把训练文件放过去,执行ok;ocr = PaddleOCR(use_angle_cls=True, lang="ch", use_gpu=False, rec_model_dir='./models/ch_ppocr_server_v2.0_rec_infer/', cls_model_dir='./models/ch_ppocr_mobile_v2.0_cls_infer/', det_model_dir='./models/ch_ppocr_server_v2.0_det_infer/') #7)其他人的机器,直接装最新paddleocr,用import paddleocr测试不报错,不知道为什么???,有 机会再研究吧
  • [大赛资讯] 提交的zip文件包含了main.py ,提交后显示Main file not found.
    提交的zip文件包含了main.py ,提交后显示Main file not found.请问如何解决
  • [大赛资讯] 对于库的使用有限制吗?
    对于库的使用有限制吗?
  • [交流吐槽] python版本啥时候放出来了
    如题,即使是预览版有BUG也行啊。VSX插件版是真的不好用。
  • [分享交流] 基于华为云python网络爬虫云课堂的爬虫实验及词云生成
    实验报告实验内容:本次实验是基于华为云python网络爬虫云课堂的一次实践,使用python编程爬取指定网站信息(分别实现静态爬虫和动态爬虫),并通过正则表达式等方式进行数据筛选。最后对筛选后的数据根据出现频次生成词云图片。实验步骤:确定目标网站:选择一个简单的网站作为目标,确保网站结构相对简单,方便进行数据提取。编写爬虫程序:使用Python编程语言,利用第三方库如requests、BeautifulSoup等,编写爬虫程序,实现对目标网站的数据爬取。数据提取与存储:从爬取的网页数据中提取所需信息,并将其存储到本地文件或数据库中。数据分析:对爬取的数据进行简单的分析,例如统计词频、制作词云等。实验总结:总结实验过程中遇到的问题、解决方案以及对爬虫技术的理解和应用。实验代码:import collectionsimport reimport requestsimport jiebaimport numpy as npimport wordcloudfrom bs4 import BeautifulSoupfrom PIL import Image实验用到的库函数如上。if __name__ == '__main__': url='http://1.117.204.48:8000/squery/login/' num="58121107" t_names=getHTMLText(url,num) print(t_names) url='https://cse.seu.edu.cn/22623/list.htm' t_url=getTeachersUrl(url,t_names) print(t_url) ciyun(t_url)主函数部分如上。def getHTMLText(url,num): try: r=requests.get(url,timeout=30) r.raise_for_status() r.encoding = 'utf-8' r = requests.get(url) rtext = r.text token = re.findall('name="csrfmiddlewaretoken" value="(.*?)"', rtext)[0] cookie=r.cookies rdata = { 'csrfmiddlewaretoken': token, 'sid': num, } rcookies = { 'csrftoken': cookie['csrftoken'] } q = requests.post(url, data=rdata, cookies=rcookies) return re.findall("'(.*?)'", q.text) except: return ''先进行动态网页爬虫,完成要求“输入自己的学号,爬取到分配的老师信息”,通过函数“def getHTMLText(url,num)”实现,参数url为要爬取的网页地址,num为输入学号,r=requests.get(url,timeout=30)请求网站,  采用编码r.encoding = 'utf-8',结合网站源代码,用正则表达式获取token = re.findall('name="csrfmiddlewaretoken" value="(.*?)"', rtext)[0],然后‘sid’即为要输入的学号num,根据rdata = {  'csrfmiddlewaretoken': token, 'sid': num}  rcookies = {   'csrftoken': cookie['csrftoken']  }可以令q = requests.post(url, data=rdata, cookies=rcookies),请求网页信息结束,然后使用正则表达式return re.findall("'(.*?)'", q.text)解析网站获得老师名称构成列表并返回。def getTeachersUrl(url,names): r=requests.get(url) r.encoding='utf-8' soup=BeautifulSoup(r.text,'html.parser') list=soup.find_all('a') names_url=[] for name in names: for item in list: if item.get('sudyfile-attr') is not None: if name in item.get('sudyfile-attr'): name_url=item.get('href') names_url.append(name_url) return names_url静态爬虫获取5位目标老师的个人主页地址,仍是结合定位、分析、存储的爬虫一般流程,设计函数“def getTeachersUrl(url,names)”,url为静态网页地址,names为任务一返回的老师名字列表,同样先是r=requests.get(url)获取网页,这里我采用soup=BeautifulSoup(r.text,'html.parser'),并发现用‘a’可以查找到网页包含所有老师的部分,创建list=soup.find_all('a'),然后将其与names比对,    for name in names:         for item in list:           if item.get('sudyfile-attr') is not None:if name in item.get('sudyfile-attr'):            name_url=item.get('href')    names_url.append(name_url)即如果找到一个老师的网站,就存储在name_url里,然后每一轮结束后再放到names_url里,最后把这个包含所有老师个人主页信息的列表返回。def fenci(text): soup = BeautifulSoup(text, 'html.parser') for script in soup(["script", "style"]): script.extract() f_text = soup.get_text() f_text = f_text.replace('\n', '').replace('\xa0', '').strip() return f_textdef qingxi(lcut): list = [] stop_words=['and','on','for','in','at','to','of','with','from','by','about'] for word in lcut: if(word not in stop_words): newword=re.sub(r'[0-9]+','',word) if len(newword) >= 2: list.append(newword) return listdef ciyun(t_url): list=[] for url in t_url: if url is not None: f = requests.get(url).text f=fenci(f) list+=qingxi(jieba.lcut(f)) word_counts=collections.Counter(list) mask = np.array(Image.open('D:/PycharmProjects/pythonProject/tiaoshi/redstar.jpg')) # 定义词频背景 wc = wordcloud.WordCloud( background_color='white', font_path='C:/Windows/Fonts/simhei.ttf', # 设置字体格式 mask=mask, # 设置背景图 max_words=200, # 最多显示词数 max_font_size=100 # 字体最大值 ) # 从字典生成词云 wc.generate_from_frequencies(word_counts) # 从背景图建立颜色方案 image_colors = wordcloud.ImageColorGenerator(mask) # 将词云颜色设置为背景图方案 wc.recolor(color_func=image_colors) wc.to_file('wordcloud.jpg')最后一个任务是获取老师们个人主页上的内容,进行初步的数据清洗,并制作词云,在函数“def ciyun(t_url)”里实现,获取内容同前两个任务,而数据清洗包括分词和清洗,通过函数“def fenci(text)”和“def qingxi(lcut)”实现,分词部分借鉴课件和网上,使用BeautifulSoup进行分词,起初并没有数据清洗,然后参照ppt上根据词频生成词云的代码,发现会得出许多英文字母、数字,因此我数据清洗使用正则表达式newword=re.sub(r'[0-9]+','',word)把一串数字(可能是联系方式)清洗掉,然后通过if len(newword) >= 2:list.append(newword)  把不必要的单个字母删除掉,这样清洗之后依据词频出现多的还有一些英文介词,因此我设置了stop_words,并通过if(word not in stop_words)进一步清洗掉这些,然后生成词云,再添加一些我认为不相关的信息到stop_words,达到了数据清洗的效果。实验结果:实现了相关任务。
  • [问题求助] CANN-6.3使用pytorch框架loss在backward出现问题
    问题显示:  File "/home/ma-user/work/DDA6/src/models.py", line 99, in backward     loss.backward()   File "/home/ma-user/anaconda3/envs/Pytorch-1.8.1/lib/python3.7/site-packages/torch/tensor.py", line 245, in backward     torch.autograd.backward(self, gradient, retain_graph, create_graph, inputs=inputs)   File "/home/ma-user/anaconda3/envs/Pytorch-1.8.1/lib/python3.7/site-packages/torch/autograd/__init__.py", line 147, in backward     allow_unreachable=True, accumulate_grad=True)  # allow_unreachable flag RuntimeError: The size of tensor a (256) must match the size of tensor b (64) at non-singleton dimension 3问题描述:在pytorch框架下的代码,从cuda往cann迁移,在cuda正常运行,而在cann中可以开始训练,但会卡在 loss.backward() 求大佬帮忙
  • [互动交流] CodeArts现在支持Python代码吗?
    刚刚看到活动链接,想问一下,CodeArts现在支持Python代码吗?
  • Python之字典一个key对应多个value-转载
    python的字典是一个key对应一个value,如果想要一个key对应多个value,那么可以用以下几种方法来实现。 方法一:创建key对应列表 name_list = ['Mary', 'Jack'] age_list = [10, 12] stu_dict = {     'name': name_list,     'age': age_list } print(stu_dict) 输出结果如下: {'name': ['Mary', 'Jack'], 'age': [10, 12]} 方法二:使用dict.setdefault()方法 stu_dict_1 = {} key1 = 'name' key2 = 'age' # 使key对应一个空列表,并使用.append()方法对空列表进行元素的添加 stu_dict_1.setdefault(key1, []).append('Mary') stu_dict_1.setdefault(key1, []).append('Jack') stu_dict_1.setdefault(key2, []).append(10) stu_dict_1.setdefault(key2, []).append(12) print(stu_dict_1) 输出结果如下: {'name': ['Mary', 'Jack'], 'age': [10, 12]} 方法三:使用collections.defaultdict类 from collections import defaultdict stu_dict_2 = defaultdict(list) stu_dict_2['name'].append('Mary') stu_dict_2['name'].append('Jack') stu_dict_2['age'].append(10) stu_dict_2['age'].append(12) print(stu_dict_2) 输出结果如下: defaultdict(<class 'list'>, {'name': ['Mary', 'Jack'], 'age': [10, 12]}) defaultdict是Python内建dict类的一个子类,其使用一个factory_function作为输入,这个factory_function可以是list、set、str等等。 dict = defaultdict(factory_function) 在实际使用过程中,我们除了需要字典一个key对应多个value,可能还有对多个value值去重的需求,这时,只需要创建一个 defaultdict(set) 的字典即可,样例如下: stu_dict_3 = defaultdict(set) stu_dict_3['name'].add('Mary') stu_dict_3['name'].add('Jack') stu_dict_3['age'].add(10) stu_dict_3['age'].add(10) print(tu_dict_3) 输出结果如下: defaultdict(<class 'set'>, {'name': {'Mary', 'Jack'}, 'age': {10}}) ———————————————— 版权声明:本文为CSDN博主「酒酿小圆子~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/u012856866/article/details/132429336 
  • [分享交流] 基于华为云网络爬虫技术云课堂的爬虫实验
    实验报告实验内容:本次实验旨在通过Python编程实现一个简单的网络爬虫,用于从指定网站上获取数据并进行处理。实验将包括爬虫的基本实现、数据的提取与存储以及对爬取数据的简单分析。实验步骤:确定目标网站:选择一个简单的网站作为目标,确保网站结构相对简单,方便进行数据提取。编写爬虫程序:使用Python编程语言,利用第三方库如requests、BeautifulSoup等,编写爬虫程序,实现对目标网站的数据爬取。数据提取与存储:从爬取的网页数据中提取所需信息,并将其存储到本地文件或数据库中。数据分析:对爬取的数据进行简单的分析,例如统计词频、制作词云等。实验总结:总结实验过程中遇到的问题、解决方案以及对爬虫技术的理解和应用。实验代码:#UTF-8格式爬虫近三年品牌销量 import csv import requests from bs4 import BeautifulSoup for page in range(1, 4): # Send a GET request to the URL url = f"https://xl.16888.com/brand-0-202007-202307-{page}.html" # Replace with the actual URL response = requests.get(url) # Parse the HTML content soup = BeautifulSoup(response.content, "html.parser") # Find all the table rows rows = soup.find_all("tr") # Create a list to store the data data = [] # Iterate over the rows and extract the brand names and sales figures for row in rows: # Find all the td elements with class "xl-td-t3" that contain only numbers td_elements = row.find_all("td", class_="xl-td-t3") sales_figures = [td.text.strip() for td in td_elements if td.text.strip().isdigit()] # Extract the brand name brand_name_element = row.find("td", class_="xl-td-t2") brand_name = brand_name_element.text.strip() if brand_name_element else "" # Add the data to the list for sales_figure in sales_figures: data.append([brand_name, sales_figure]) # Define the output CSV file path output_file = f"car_brands_sales{page}.csv" # Write the data to the CSV file with UTF-8 encoding with open(output_file, "w", newline="", encoding="utf-8") as file: writer = csv.writer(file) writer.writerow(["Brand", "Sales"]) # Write the header row for row in data: writer.writerow(row) print(f"Data saved to {output_file}")实验结果图中brand为各类车辆品牌,sales为各车辆品牌的总销量信息。实验总结:通过实验,我们成功实现了一个简单的网络爬虫程序,能够从指定网站上获取数据并进行存储与简单分析。在实验过程中,我们也深入了解了网络爬虫的基本原理和实现方式,对Python编程语言和相关库的使用也有了更深入的了解。网络爬虫技术在数据获取与处理方面具有重要的应用,通过本次实验,我们对其应用场景和实现方法有了更清晰的认识。
  • [问题求助] AOC MINI不能访问了
    https://remotelab.huawei.com/directApplyAOC/aminiAOC MINI不能访问了,各位大佬有遇到吗?
  • [专题汇总] 多板块,多技术技术干货,问题求助合集。
     大家好,本月给大家带来的是CodeArts,lot物联网,数据库等多个模块的问题求助,以及干货合集,希望可以帮到大家。  问题求助: 1.如何在CodeArts中进行版本控制和团队协作? https://bbs.huaweicloud.com/forum/thread-02109134113938083048-1-1.html  2.如何在CodeArts中进行代码重构和优化? https://bbs.huaweicloud.com/forum/thread-02116134113913776048-1-1.html  3.如何在CodeArts中实现代码的自动化测试和验证? https://bbs.huaweicloud.com/forum/thread-0296134113886594043-1-1.html  4.如何在CodeArts中进行代码审查和质量控制? https://bbs.huaweicloud.com/forum/thread-02109134113860762047-1-1.html  5.在CodeArts中如何使用代码模板进行快速开发? https://bbs.huaweicloud.com/forum/thread-0248134113772174042-1-1.html  6.使用标准系统内核的Openharmony的开发板如何接入华为云IoT https://bbs.huaweicloud.com/forum/thread-02125132312741820009-1-1.html  7.华为云IOT后续能实现接收上传的视频或者图片数据吗? https://bbs.huaweicloud.com/forum/thread-0231132224565537004-1-1.html  8.华为云的IOT有没有一体化的应用程序开发框架? https://bbs.huaweicloud.com/forum/thread-0291132224385357002-1-1.html  9.问下论坛大佬们,人脸的侧脸识别不是很精确如何解决?  https://bbs.huaweicloud.com/forum/thread-02124132223415290004-1-1.html  10.如何有效地利用ModelArts进行模型训练和调优?  https://bbs.huaweicloud.com/forum/thread-02125134010854460033-1-1.html  11.新手教程怎么都这么难,这是什么原因啊大佬们!!  https://bbs.huaweicloud.com/forum/thread-02115133605091189031-1-1.html  12.关于AI Gallery平台成长值兑换平台专项算力资源的活动什么时候上线啊? https://bbs.huaweicloud.com/forum/thread-0275133102137993004-1-1.html  13.ModelArts创建notebook进入终端训练模型产生的文件如何导出? https://bbs.huaweicloud.com/forum/thread-0236132906603549009-1-1.html  14.CPU:2核心8GB 使用conda创建虚拟Python环境会有很大的几率失败,报错如下:(大于此规格目前正常) https://bbs.huaweicloud.com/forum/thread-0235132113651876033-1-1.html  15.modelbox部署 在rk3588s上,运行hello_world demo 报错debain os need load libgomp  https://bbs.huaweicloud.com/forum/thread-0249131878466628023-1-1.html  技术干货 1.一文详解MYSQL的多版本并发控制MVCC(Multi-Version Concurrency Control)【转】 https://bbs.huaweicloud.com/forum/thread-02109134115448959053-1-1.html  2.mysql中删除数据的四种方法小结【转】 https://bbs.huaweicloud.com/forum/thread-02109134115399646052-1-1.html  3.Mysql实现递归树查询的使用示例【转】 https://bbs.huaweicloud.com/forum/thread-0257134115101586049-1-1.html  4.MySQL 格式化时间的实现示例【转】 https://bbs.huaweicloud.com/forum/thread-02116134115040577051-1-1.html  5.有效查询MySQL表中重复数据的方法和技巧分享【转】 https://bbs.huaweicloud.com/forum/thread-02116134114971706050-1-1.html  6.Python3第三方模块之Pillow模块的使用详解【转】 https://bbs.huaweicloud.com/forum/thread-0273134098427488045-1-1.html  7.使用python连接Linux服务器发送指定命令的示例代码【转】 https://bbs.huaweicloud.com/forum/thread-0248134098310854040-1-1.html  8.python curl2pyreqs 生成接口脚本实战教程【转】 https://bbs.huaweicloud.com/forum/thread-02125134098161489039-1-1.html  9.python通过socket搭建极简web服务器的实现代码【转】 https://bbs.huaweicloud.com/forum/thread-0296134098104530042-1-1.html  10.Windows系统使用bat批量修改文件名的使用示例【转】 https://bbs.huaweicloud.com/forum/thread-0273134098018508044-1-1.html      11.DOS下常用的20个基本操作命令【转】 https://bbs.huaweicloud.com/forum/thread-0248134097935982039-1-1.html  12.Boston数据集预测放假及应用优缺点评估【转】 https://bbs.huaweicloud.com/forum/thread-02116134097856413045-1-1.html  13.python + winrm 实现远程连接Windows服务器并执行指定命令的操作过程【转】 https://bbs.huaweicloud.com/forum/thread-02116134097701112044-1-1.html  14.pandas探索你的数据实现可视化示例详解【转】 https://bbs.huaweicloud.com/forum/thread-02116134097466266043-1-1.html  15.Python pydotplus安装及可视化图形创建教程【转】 https://bbs.huaweicloud.com/forum/thread-02109134097344935046-1-1.html 
  • [问题求助] 使用Beautiful Soup应该怎么解析HTML?
    使用Beautiful Soup应该怎么解析HTML?
总条数:2474 到第 页
上滑加载中