/images/avatar.png

vllbc

asyncio

import threading
import time

多线程例子

def spider():
    #.....
    time.sleep(0.02)
def main1():
    for i in range(100):
        spider()
def main2():
    thread_list = []
    for i in range(100):
        thread = threading.Thread(target = spider)
        thread.start()
        thread_list.append(thread)
    for t in thread_list:
        t.join()
if __name__ == "__main__":
    start = time.time()
    main1()
    end = time.time()
    print("time1 :{:.4f}".format(end-start))
    
    start = time.time()
    main2()
    end = time.time()
    print("time2 :{:4f}".format(end-start))
time1 :2.0523
time2 :0.037929

yield

def fib(n):
    a,b = 0,1
    while b<n: 
        a,b = b,a+b
        yield a
print(fib(100))
for i in fib(100):
    print(i)
<generator object fib at 0x000002B1A7AA1E60>
1
1
2
3
5
8
13
21
34
55
89

协程

GEN_CREATED 创建完成,等待执行 GEN_RUNNING 解释器正在执行 GEN_SUSPENDED 在 yield 表达式处暂停 GEN_CLOSE 执行结束,生成器停止

Decision Tree

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
dataset = pd.read_csv('./datasets/Social_Network_Ads.csv')
X = dataset.iloc[:, [2, 3]].values
y = dataset.iloc[:, 4].values
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier(criterion = 'entropy', random_state = 0)
classifier.fit(X_train, y_train)
DecisionTreeClassifier(criterion='entropy', random_state=0)
classifier.score(X_test,y_test)
0.91

TextRank

参考:https://blog.csdn.net/asialee_bird/article/details/96894533

TextRank算法是一种基于图的用于关键词抽取和文档摘要的排序算法,由谷歌的网页重要性排序算法PageRank算法改进而来,它利用一篇文档内部的词语间的共现信息(语义)便可以抽取关键词,它能够从一个给定的文本中抽取出该文本的关键词、关键词组,并使用抽取式的自动文摘方法抽取出该文本的关键句。

pyplot

matplotlib.pyplot学习

绘图标记

import matplotlib.pyplot as plt
import numpy as np

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

plt.plot(ypoints, marker = 'o') # "o"代表实心圆
plt.show()

maker可用的符号如下:

fmt参数

fmt = '[marker][line][color]'

例如 o:ro 表示实心圆标记,: 表示虚线,r 表示颜色为红色。

机器学习的一些概念

范数的定义

\[ {\lVert x \rVert}_p := \left(\sum_{i=1}^n{\lvert x_i\rvert}^p\right)^{\frac{1}{p}} \]

标准化与归一化

定义

归一化和标准化都是对数据做变换的方式,将原始的一列数据转换到某个范围,或者某种形态。 >归一化:将一列数据变化到某个固定区间(范围)中,通常,这个区间是[0, 1],广义的讲,可以是各种区间,比如映射到[0,1]一样可以继续映射到其他范围,图像中可能会映射到[0,255],其他情况可能映射到[-1,1];

验证二叉搜索树

验证二叉搜索树

https://leetcode-cn.com/problems/validate-binary-search-tree/

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def isValidBST(self, root: TreeNode) -> bool:
        return self.search(root,-(232),232)
    def search(self,root,mins,maxs):
        if root == None:
            return True
        if root.val > mins and root.val < maxs:
            pass
        else:
            return False
        return all([self.search(root.left,mins,root.val),self.search(root.right,root.val,maxs)])

最后用了个all 也是简洁了代码

vim

范围+文本对象

范围

  • 内部:i ,意指 inner
  • 外部:a ,英文单词 a,一个的意思

文本对象

  • ( 或 ) :一对 ()
  • b :一对 ()
  • { 或 } :一对 {}
  • B :一对 {}
  • [ 或 ] :一对 []
  • < 或 > :一对 <>
  • t :tag (HTML 或 XML)标签
  • ' 或 ' :一对 ''
  • " 或 " :一对 ""
  • ` 或 ` :一对 ``
  • w :一个单词
  • s :一个句子;以 . ! ? 结尾即为一个句子
  • p :一个段落;以一个换行符间隔即为一个段落(一般用于对函数体操作)

比如i'代表'内部,iw代表光标所在单词,注意到,加上了范围i或者a,则原本的w含义也发生了变化,注意这是两个东西,原本的w为一个移动,而这里的w代表文本对象即单词。