30个数据科学工作中最常用的 Python 包

news2024/11/16 19:30:05

Python 可以说是最容易入门的编程语言,在numpy,scipy等基础包的帮助下,对于数据的处理和机器学习来说Python可以说是目前最好的语言。

在各位大佬和热心贡献者的帮助下Python拥有一个庞大的社区支持技术发展,开发两个各种 Python 包来帮助数据人员的工作。

技术交流

技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

好的文章离不开粉丝的分享、推荐,资料干货、资料分享、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、添加微信号:pythoner666,备注:来自CSDN + 加群
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

1、Knockknock

Knockknock是一个简单的Python包,它会在机器学习模型训练结束或崩溃时通知您。我们可以通过多种渠道获得通知,如电子邮件、Slack、Microsoft Teams等。

为了安装该包,我们使用以下代码。

pip install knockknock  

例如,我们可以使用以下代码将机器学习建模训练状态通知到指定的电子邮件地址。

from knockknock import email_sender  
from sklearn.linear_model import LinearRegression  
import numpy as np  
  
@email_sender(recipient_emails=["<your_email@address.com>", "<your_second_email@address.com>"], sender_email="<sender_email@gmail.com>")  
def train_linear_model(your_nicest_parameters):  
  x = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])  
  y = np.dot(x, np.array([1, 2])) + 3  
  regression = LinearRegression().fit(x, y)  
return regression.score(x, y)  

这样就可以在该函数出现问题或者完成时获得通知。

2、tqdm

当需要进行迭代或循环时,如果你需要显示进度条?那么tqdm就是你需要的。这个包将在你的笔记本或命令提示符中提供一个简单的进度计。

让我们从安装包开始。

pip install tqdm  

然后可以使用以下代码来显示循环过程中的进度条。

from tqdm import tqdm  
q = 0  
for i in tqdm(range(10000000)):  
  q = i +1  

就像上面的gifg,它可以在notebook上显示一个很好的进度条。当有一个复杂的迭代并且想要跟踪进度时,它会非常有用。

3、Pandas-log

Panda -log可以对Panda的基本操作提供反馈,如.query、.drop、.merge等。它基于R的Tidyverse,可以使用它了解所有数据分析步骤。

安装包

pip install pandas-log  

安装包之后,看看下面的示例。

import pandas as pd  
import numpy as np  
import pandas_log  
df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],  
                  "toy": [np.nan, 'Batmobile', 'Bullwhip'],  
                  "born": [pd.NaT, pd.Timestamp("1940-04-25"),   pd.NaT]})  

然后让我们尝试用下面的代码做一个简单的 pandas 操作记录。

with pandas_log.enable():  
  res = (df.drop("born", axis = 1)  
            .groupby('name')  
        )  

通过 pandas-log,我们可以获取所有的执行信息。

4、Emoji

顾名思义,Emoji 是一个支持 emoji 文本解析的 Python 包。通常,我们很难用 Python 处理表情符号,但 Emoji 包可以帮助我们进行转换。

使用以下代码安装 Emoji 包。

pip install emoji  

看看下面代码:

import emoji  
print(emoji.emojize('Python is :thumbs_up:'))  

Python is

有了这个包,可以轻易的输出表情符号。

5、TheFuzz

TheFuzz 使用 Levenshtein 距离来匹配文本以计算相似度。

pip install thefuzz  

下面代码介绍如何使用 TheFuzz 进行相似性文本匹配。

from thefuzz import fuzz, process  
  
#Testing the score between two sentences  
fuzz.ratio("Test the word", "test the Word!")  

81

TheFuzz 还可以同时从多个单词中提取相似度分数。

choices = ["Atlanta Falcons", "New York Jets", "New York Giants", "Dallas Cowboys"]  
process.extract("new york jets", choices, limit=2)  
[('new york jets', 100),   
 ('new york Giants', 79)]

TheFuzz 适用于任何文本数据相似性检测,这个工作在nlp中非常重要。

6、Numerizer

Numerizer 可将写入的数字文本转换为对应的整数或浮点数。

pip install numerizer  

然后 让我们尝试几个输入来进行转换。

from numerizer import numerize  
numerize('forty two')  

'42'

如果使用另一种书写风格,它也可以工作的。

numerize('forty-two')  

'42'
numerize('nine and three quarters')  

'9.75'

如果输入不是数字的表达式,那么将会保留:

numerize('maybe around nine and three quarters')  
'maybe around 9.75'

7、PyAutoGUI

PyAutoGUI 可以自动控制鼠标和键盘。

pip install pyautogui  

然后我们可以使用以下代码测试。

import pyautogui  
pyautogui.moveTo(10, 15)  
pyautogui.click()  
pyautogui.doubleClick()  
pyautogui.press('enter')  

上面的代码会将鼠标移动到某个位置并单击鼠标。当需要重复操作(例如下载文件或收集数据)时,非常有用。

8、Weightedcalcs

Weightedcalcs 用于统计计算。用法从简单的统计数据(例如加权平均值、中位数和标准变化)到加权计数和分布等。

pip install weightedcalcs  

使用可用数据计算加权分布。

import seaborn as sns  
df = sns.load_dataset('mpg')  
import weightedcalcs as wc  
calc = wc.Calculator("mpg")  

然后我们通过传递数据集并计算预期变量来进行加权计算。

calc.distribution(df, "origin")  
origin  
europe  0.208616  
japan   0.257042  
usa     0.534342  
Name: mpg, dtype: float64

9、scikit-posthocs

scikit-posthocs 是一个用于“事后”测试分析的 python 包,通常用于统计分析中的成对比较。该软件包提供了简单的类似 scikit-learn API 来进行分析。

pip install scikit-posthocs  

然后让我们从简单的数据集开始,进行 ANOVA 测试。

import statsmodels.api as sa  
import statsmodels.formula.api as sfa  
import scikit_posthocs as sp  
df = sa.datasets.get_rdataset('iris').data  
df.columns = df.columns.str.replace('.', '')  
  
lm = sfa.ols('SepalWidth ~ C(Species)', data=df).fit()  
anova = sa.stats.anova_lm(lm)  
print(anova)  
            df     sum_sq     mean_sq   F        PR(>F)      
C (Species) 2.0    11.344933  5.672467  49.1600  4.492017e-17  
Residual    147.0  16.962000  0.115388  NaN      NaN

获得了 ANOVA 测试结果,但不确定哪个变量类对结果的影响最大,可以使用以下代码进行原因的查看。

sp.posthoc_ttest(df,   
                 val_col='SepalWidth',   
                 group_col='Species',   
                 p_adjust='holm')  

使用 scikit-posthoc,我们简化了事后测试的成对分析过程并获得了 P 值

10、Cerberus

Cerberus 是一个用于数据验证的轻量级 python 包。

pip install cerberus  

Cerberus 的基本用法是验证类的结构。

from cerberus import Validator  
schema = {'name': {'type': 'string'},   
          'gender':{'type': 'string'},   
          'age':{'type':'integer'}}  
v = Validator(schema)  

定义好需要验证的结构后,可以对实例进行验证。

document = {'name': 'john doe', 'gender':'male', 'age': 15}  
v.validate(document)  
True

如果匹配,则 Validator 类将输出True 。这样我们可以确保数据结构是正确的。

11、ppscore

ppscore 用于计算与目标变量相关的变量的预测能力。该包计算可以检测两个变量之间的线性或非线性关系的分数。分数范围从 0(无预测能力)到 1(完美预测能力)。

pip install ppscore  

使用 ppscore 包根据目标计算分数。

import seaborn as sns  
import ppscore as pps  
df = sns.load_dataset('mpg')  
pps.predictors(df, 'mpg')  

结果进行了排序。排名越低变量对目标的预测能力越低。

12、Maya

Maya 用于尽可能轻松地解析 DateTime 数据。

 pip install maya

然后我们可以使用以下代码轻松获得当前日期。

import maya  
now = maya.now()  
print(now)  

还可以为明天日期。

tomorrow = maya.when('tomorrow')  
tomorrow.datetime()  

datatime.datatime.(2022, 8, 8, 6, 44, 10, 141499,  
tzinfo=<UTC>)

13、Pendulum

Pendulum 是另一个涉及 DateTime 数据的 python 包。它用于简化任何 DateTime 分析过程。

pip install pendulum  

我们可以对实践进行任何的操作。

import pendulum  
now = pendulum.now("Europe/Berlin")  
  
now.in_timezone("Asia/Tokyo")  
  
now.to_iso8601_string()  
  
now.add(days=2)  

14、category_encoders

category_encoders 是一个用于类别数据编码(转换为数值数据)的python包。该包是各种编码方法的集合,我们可以根据需要将其应用于各种分类数据。

pip install category_encoders  

可以使用以下示例应用转换。

from category_encoders import BinaryEncoder  
import pandas as pd  
  
enc = BinaryEncoder(cols=['origin']).fit(df)  
numeric_dataset = enc.transform(df)  
numeric_dataset.head()  

15、scikit-multilearn

scikit-multilearn 可以用于特定于多类分类模型的机器学习模型。该软件包提供 API 用于训练机器学习模型以预测具有两个以上类别目标的数据集。

pip install scikit-multilearn  

利用样本数据集进行多标签KNN来训练分类器并度量性能指标。

from skmultilearn.dataset import load_dataset  
from skmultilearn.adapt import MLkNN  
import sklearn.metrics as metrics  
  
X_train, y_train, feature_names, label_names = load_dataset('emotions', 'train')  
X_test, y_test, _, _ = load_dataset('emotions', 'test')  
  
classifier = MLkNN(k=3)  
prediction = classifier.fit(X_train, y_train).predict(X_test)  
  
metrics.hamming_loss(y_test, prediction)  
emotions:train - exists, not redownloading    
emotions:test - exists, not redownloading     
  
0.2953795379537954

16、Multiset

Multiset类似于内置的set函数,但该包允许相同的字符多次出现。

pip install multiset  

可以使用下面的代码来使用 Multiset 函数。

from multiset import Multiset  
set1 = Multiset('aab')  
set1  

Multiset({'a': 2, 'b':1})

17、Jazzit

Jazzit 可以在我们的代码出错或等待代码运行时播放音乐。

pip install jazzit  

使用以下代码在错误情况下尝试示例音乐。

from jazzit import error_track  
  
@error_track("curb_your_enthusiasm.mp3", wait=5)  
def run():  
    for num in reversed(range(10)):  
        print(10/num)  

这个包虽然没什么用,但是它的功能是不是很有趣。

18、handcalcs

handcalcs 用于简化notebook中的数学公式过程。它将任何数学函数转换为其方程形式。

pip install handcalcs  

使用以下代码来测试 handcalcs 包。使用 %%render 魔术命令来渲染 Latex 。

import handcalcs.render  
from math import sqrt  
%%rendera = 4  
b = 6  
c = sqrt(3*a + b/7)  

19、NeatText

NeatText 可简化文本清理和预处理过程。它对任何 NLP 项目和文本机器学习项目数据都很有用。

pip install neattext  

使用下面的代码,生成测试数据

import neattext as nt   
mytext = "This is the word sample but ,our WEBSITE is https://exaempleeele.com ✨."  
docx = nt.TextFrame(text=mytext)  

TextFrame 用于启动 NeatText 类然后可以使用各种函数来查看和清理数据。

docx.describe()  

Key       Value  
Length    : 72  
vowels    : 21  
consonants: 33  
stopwords : 5  
punctuations: 6  
special_char: 6  
tokens(whitespace): 11  
tokens(words): 13

使用 describe 函数,可以显示每个文本统计信息。进一步清理数据,可以使用以下代码。

docx.normalize()  

20、Combo

Combo 是一个用于机器学习模型和分数组合的 python 包。该软件包提供了一个工具箱,允许将各种机器学习模型训练成一个模型。也就是可以对模型进行整合。

pip install combo  

使用来自 scikit-learn 的乳腺癌数据集和来自 scikit-learn 的各种分类模型来创建机器学习组合。

from sklearn.tree import DecisionTreeClassifier  
from sklearn.linear_model import LogisticRegression  
from sklearn.ensemble import GradientBoostingClassifier  
from sklearn.ensemble import RandomForestClassifier  
from sklearn.neighbors import KNeighborsClassifier  
  
from sklearn.model_selection import train_test_split  
from sklearn.datasets import load_breast_cancer  
  
from combo.models.classifier_stacking import Stacking  
from combo.utils.data import evaluate_print  

接下来,看一下用于预测目标的单个分类器。

# Define data file and read X and y  
random_state = 42  
X, y = load_breast_cancer(return_X_y=True)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4,random_state=random_state)  
# initialize a group of clfs  
classifiers = [DecisionTreeClassifier(random_state=random_state),  
                   LogisticRegression(random_state=random_state),  
                   KNeighborsClassifier(),  
                   RandomForestClassifier(random_state=random_state),  
                   GradientBoostingClassifier(random_state=random_state)]  
clf_names = ['DT', 'LR', 'KNN', 'RF', 'GBDT']  
  
for i, clf in enumerate(classifiers):  
    clf.fit(X_train, y_train)  
    y_test_predict = clf.predict(X_test)  
    evaluate_print(clf_names[i] + '   |   ', y_test, y_test_predict)  
    print()  
DT   | Accuracy: 0.9386, ROC:0.9383, F1:0.9521  
LR   | Accuracy: 0.9693, ROC:0.962,  F1:0.9766  
KNN  | Accuracv: 0.9561, ROC:0.9519, F1:0.9662  
RF   | Accuracy: 0.9781, ROC:0.9716, F1:0.9833  
GBDT | Accuracy: 0.9605, ROC:0.9524, F1:0.9699

使用 Combo 包的 Stacking 模型。

clf = Stacking(classifiers, n_folds=4, shuffle_data=False,  
                   keep_original=True, use_proba=False,  
                   random_state=random_state)  
                     
clf.fit(X_train, y_train)  
y_test_predict = clf.predict(X_test)  
  
evaluate_print('Stacking | ', y_test, y_test_predict)  

21、PyAztro

你是否需要星座数据或只是对今天的运气感到好奇?可以使用 PyAztro 来获得这些信息!这个包有幸运数字、幸运标志、心情等等。这是我们人工智能算命的基础数据,哈

pip install pyaztro  

使用以下代码访问今天的星座信息。

import pyaztro  
pyaztro.Aztro(sign='gemini').description  
"A very sexy visitor will cross your path soon.   
If not today, then within a few days.   
Once they arrive, lots of things will change.   
Your organized schedule, for one.   
Not that you'll mind, of coursel"

22、Faker

Faker 可用于简化生成合成数据。许多开发人员使用这个包来创建测试的数据。

pip install Faker  

要使用 Faker 包生成合成数据

from faker import Faker  
fake = Faker()  

生成名字

fake.name()  
'Danielle Cobb'

每次从 Faker 类获取 .name 属性时,Faker 都会随机生成数据。

23、Fairlearn

Fairlearn 用于评估和减轻机器学习模型中的不公平性。该软件包提供了许多查看偏差所必需的 API。

pip install fairlearn  

然后可以使用 Fairlearn 的数据集来查看模型中有多少偏差。

from fairlearn.metrics import MetricFrame, selection_rate  
from fairlearn.datasets import fetch_adult  
  
data = fetch_adult(as_frame=True)  
X = data.data  
y_true = (data.target == '>50K') * 1  
sex = X['sex']  
  
selection_rates = MetricFrame(metrics=selection_rate,  
                              y_true=y_true,  
                              y_pred=y_true,  
                              sensitive_features=sex)  
                                
fig = selection_rates.by_group.plot.bar(  
    legend=False, rot=0,  
    title='Fraction earning over $50,000')  

Fairlearn API 有一个 selection_rate 函数,可以使用它来检测组模型预测之间的分数差异,以便我们可以看到结果的偏差。

24、tiobeindexpy

tiobeindexpy 用于获取 TIOBE 索引数据。TIOBE 指数是一个编程排名数据,对于开发人员来说是非常重要的因为我们不想错过编程世界的下一件大事。

pip install tiobeindexpy  

可以通过以下代码获得当月前 20 名的编程语言排名。

from tiobeindexpy import tiobeindexpy as tb  
df = tb.top_20()  

25、pytrends

pytrends 可以使用 Google API 获取关键字趋势数据。如果想要了解当前的网络趋势或与我们的关键字相关的趋势时,该软件包非常有用。这个需要访问google,所以你懂的。

pip install pytrends  

假设我想知道与关键字“Present Gift”相关的当前趋势,

from pytrends.request import TrendReq  
import pandas as pd  
pytrend = TrendReq()  
  
keywords = pytrend.suggestions(keyword='Present Gift')  
df = pd.DataFrame(keywords)  
df  

该包将返回与关键字相关的前 5 个趋势。

26、visions

visions 是一个用于语义数据分析的 python 包。该包可以检测数据类型并推断列的数据应该是什么。

pip install visions  

可以使用以下代码检测数据中的列数据类型。这里使用 seaborn 的 Titanic 数据集。

import seaborn as sns  
from visions.functional import detect_type, infer_type  
from visions.typesets import CompleteSet  
df = sns.load_dataset('titanic')  
typeset = CompleteSet()  
  
converting everything to strings  
print(detect_type(df, typeset))  

27、Schedule

Schedule 可以为任何代码创建作业调度功能

pip install schedule  

例如,我们想10 秒工作一次:

import schedule  
import time  
  
def job():  
    print("I'm working...")  
  
schedule.every(10).seconds.do(job)  
  
while True:  
    schedule.run_pending()  
    time.sleep(1)  
I'm working...    
I'm working...     
I'm working...     
I'm working...     
I'm working...     
I'm working...     
I'm working...     
I'm working...     
I'm working...     
I'm working...  

28、autocorrect

autocorrect 是一个用于文本拼写更正的 python 包,可应用于多种语言。用法很简单,并且对数据清理过程非常有用。

pip install autocorrect  

可以使用类似于以下代码进行自动更正。

from autocorrect import Speller  
spell = Speller()  
spell("I'm not sleaspy and tehre is no place, I'm giong to.")  
"I'm not sleaspy and tehre is no place,   
I'm giong to."

29、funcy

funcy 包含用于日常数据分析使用的精美实用功能。包中的功能太多了,我无法全部展示出来,有兴趣的请查看他的文档。

pip install funcy  

这里只展示一个示例函数,用于从可迭代变量中选择一个偶数,如下面的代码所示。

from funcy import select, even  
select(even, {i for i in range (20)})  

{0, 2, 4, 6, 8, 10, 12, 14, 16, 18}

30、IceCream

IceCream 可以使调试过程更容易。该软件包在打印/记录过程中提供了更详细的输出。

pip install icecream  

可以使用下面代码

from icecream import ic  
  
def some_function(i):  
    i = 4 + (1 * 2)/ 10   
    return i + 35  
  
ic(some_function(121))  
39.2

也可以用作函数检查器。

def foo():  
    ic()  
      
    if some_function(12):  
        ic()  
    else:  
        ic()  
  
foo()  

打印的详细程度非常适合分析

总结

在本文中,总结了 30个在数据工作中有用的独特 Python 包。大多数软件包易于使用且简单明了,但有些可能功能较多需要进一步阅读其文档,如果你有兴趣请去pypi网站搜索并查看该软件包的主页和文档,希望本文对你有所帮助。

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

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

相关文章

Oracle中数据导出成HTML的操作实践

spool是Oracle中将数据到成文件常用的一种工具&#xff0c;但它的强大&#xff0c;不仅仅是数据的导出&#xff0c;在格式和内容上&#xff0c;还可以自定义&#xff0c;甚至生成像AWR一样的统计报告。 参考《SQL*Plus Users Guide and Reference》中第7章"Generating HTM…

光纤仿真相关求解——光纤芯层和包层电磁场分布求解

要求解光纤中的电磁场分布&#xff0c;就要构建合适的物理模型 将光纤假设为圆柱状的波导&#xff0c;求解满足均匀原型介质波导边界条件的麦克斯韦方程组&#xff0c;即可 z分量的亥姆霍兹方程为&#xff1a; 对应在圆柱坐标系下为&#xff1a; 用分离变量法求解Ez&#xff…

如果你不想工作了,先做这3件事

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID&#xff1a;jishulingdaoli) 英国作家毛姆有句名言&#xff1a;“我从来不会厌倦生活&#xff0c;只是厌倦了那些毫无生气的生活方式。”把这句话稍微修改一下&#xff0c;放在职场也无比适用“我并不厌倦工作,只是厌倦了那些毫无…

第10章_创建和管理表

第10章_创建和管理表 1. 基础知识 1.1 一条数据存储的过程 存储数据是处理数据的第一步。只有正确地把数据存储起来&#xff0c;我们才能进行有效的处理和分析。否则&#xff0c;只能是一团乱麻&#xff0c;无从下手。 那么&#xff0c;怎样才能把用户各种经营相关的、纷繁复…

从零玩转设计模式之建造者模式-jianzaozhemoshi

title: 从零玩转设计模式之建造者模式 date: 2022-12-08 18:15:30.898 updated: 2022-12-23 15:35:58.428 url: https://www.yby6.com/archives/jianzaozhemoshi categories: - 设计模式 tags: - 设计模式 - 建造者模式 什么是建造者模式? 建造者模式是一种软件设计模式&…

突发!OpenAI 重磅发布 ChatGPT iOS 客户端!无须手续费,直接开通Plus。

大家好&#xff0c;我是GG哥&#xff01; 今天凌晨&#xff0c;OpenAI又重磅宣布推出ChatGPT的 iOS移动版本。也就是说&#xff0c;从今天开始iOS用户将可以在手机和iPad上免费下载和使用ChatGPT。 整体来说&#xff0c;iOS移动端的ChatGPT主打简洁流畅的风格&#xff0c;全力提…

Qt C++5.9开发指南

第1章 认识Qt 1.1 Qt简介 1、Qt是一套应用程序开发类库&#xff0c;但与MFC不同&#xff0c;Qt是跨平台开发类库。 2、跨平台意味着只需要编写一次程序&#xff0c;在不同平台上无需改动或只是需要少许改动后再编译&#xff0c;就可以形成不同平台上运行的版本。 1.2 Qt的获取与…

Python中的字典学习笔记

字典的格式&#xff1a;{"key":"value"} key表示数据的含义&#xff0c;value表示对应的数据的值字典是一种可变的数据类型&#xff0c;从python3.7开始&#xff0c;字典是有序的。 字典创建的方式 1、通过{}&#xff0c;要使用key:value的格式&#xff0c…

​编程教室的文章是用什么库完成的?

入门教程、案例源码、学习资料、读者群 请访问&#xff1a; python666.cn 大家好&#xff0c;欢迎来到 Crossin的编程教室 &#xff01; Python 的一大特色是其丰富的模块&#xff0c;基本上只要你能想到的常见开发需求&#xff0c;都能找到别人已经实现的库直接使用&#xff0…

图的拓扑排序与关键路径

拓扑排序与关键路径是有向无环图上的应用。两种算法使用同一种动态规划的思想&#xff0c;因此关键路径的代码几乎和拓扑排序完全一样。 &#xff08;一&#xff09;拓扑排序 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序&#xff0c;是将G中所有顶点排成一…

由浅入深Netty入门案例

目录 1 概述1.1 Netty 是什么&#xff1f;1.2 Netty 的作者1.3 Netty 的地位1.4 Netty 的优势 2 Hello World2.1 目标2.2 服务器端2.3 客户端2.4 流程梳理2.5 提示 1 概述 1.1 Netty 是什么&#xff1f; Netty is an asynchronous event-driven network application framework…

4.是人就能学会的Spring源码教程-IOC容器创建Bean对象

IOC容器创建Bean对象 简单了解Bean工厂 我们要关注一个接口BeanFactory&#xff0c;它是Spring IOC容器的根接口&#xff0c;也是容器的入口。 类的描述中已经清楚的说明了&#xff1a; 用于访问 Spring bean 容器的根接口。 这是 bean 容器的基本客户端视图&#xff1b;进一…

小牛电动疲软的销售趋势和不明朗的未来

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 小牛电动(NIU)的股价今年迄今为止已经下跌了6%。尽管该公司在蓬勃发展的电动汽车市场运营&#xff0c;但疫情的限制和欧洲的销售疲软导致小牛电动在欧市场的销量持续下降&#xff0c;猛兽财经认为&#xff0c;由于规模经济…

【LeetCode】528. 按权重随机选择

528. 按权重随机选择&#xff08;中等&#xff09; 思路 我们先把题目读懂。假设我们有数组 w[1,2,3,4], 那么这个数组的的和为 123 4 10 。我们得到 index (0,1,2,3) 的概率为 [1/10,2/10,3/10,4/10]。现在我们要返回(0,1,2,3) 中任意一个 index&#xff0c;但是我们要保证 p…

Docker安装MeiliSearch教程

MeiliSearch是一款开源的全文搜索引擎&#xff0c;它使用Rust编写&#xff0c;具有高效、快速、易用的特点。MeiliSearch支持多种语言&#xff0c;可以轻松地集成到任何应用程序中。它可以处理大量的文本数据&#xff0c;并能够快速地搜索和返回相关的结果。MeiliSearch还提供了…

[深度学习]大模型训练之框架篇-DeepSpeed

一 为什么需要Deepspeed 大模型&#xff08;LLM&#xff09;在训练时往往需要大量内存来存储中间激活、权重等参数&#xff0c;百亿模型甚至无法在单个 GPU上进行训练&#xff0c;使得模型训练在某些情况下非常低效和不可能。这就需要进行多卡&#xff0c;或者多节点分布式训练…

zabbix企业监控实战-1-zabbix部署

官网&#xff1a;https://www.zabbix.com 参考官网&#xff1a;https://www.zabbix.com/download?zabbix6.0&os_distributionrocky_linux&os_version8&componentsserver_frontend_agent&dbmysql&wsapache 1、环境准备 1> 修改主机名 [rootzabbix ~]# h…

Java --- redis7实现分布式锁

目录 一、锁的种类 二、分布式锁具备的条件与刚需 三、springbootredisngnix单机实现案例 四、Nginx配置负载均衡 4.1、修改nginx配置文件 4.2、执行启动命令 4.3、启动微服务程序测试 五、使用redis分布式锁 5.1、方法递归重试 5.2、自旋方式 5.3、添加key过期时间&#xff0…

业务实战记录4:多维表插入数据任务丢失处理与思考

本文目录 一、线程 bug二、解决方案2.1 加停顿2.2 单线程2.3 多 Token 三、一点花絮 很久没有写业务实战记录了&#xff0c;实际工作过程中其实遇到了挺多问题的&#xff0c;但是要通过 CSDN 记录下来&#xff0c;还是比较难的&#xff0c;因为场景和目标比较难说清楚&#xff…

【网络】HTTPHTTPS协议

文章目录 HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP请求协议格式简单的小实验 HTTP响应协议格式关于封装解包分用 HTTP的方法关于GET和POST方法概念GET&POST对比(代码测试)测试POST和GET方法的区别 HTTP的状态码关于重定向的状态码临时重定向的代码演示: HTTP的…