

这些是将Python从通用编程语言转换为功能强大且健壮的数据分析和可视化工具的最佳库。
NumPy是Python中的基础库或科学计算机,许多下游库都使用NumPy数组作为输入和输出。 NumPy引入了用于多维数组和矩阵的对象,以及允许开发人员以尽可能少的代码对数组执行高级数学和统计功能的例程。
例
将numpy导入为np
#创建形状为(3,4)的以下等级2数组#[[1 2 3 4]#[5 6 7 8]#[9 10 11 12]] a = np.array([[1,2,3 ,4],[5,6,7,8],[9,10,11,12]])
#使用切片拉出由前2行#和第1列和第2列组成的子数组; b是以下形状(2,2)的数组:#[[[2 3]##[6 7]] b = a [:2,1:3]
#数组的一部分是对相同数据的视图,因此对其进行修改#将修改原始数组。 print(a [0,1])#打印“ 2” b [0,0] = 77#b [0,0]与a [0,1]是同一数据
print(a [0,1])#打印“ 77”
SciPy通过添加用于处理和可视化数据的算法和高级命令的集合,以NumPy为基础。 该软件包包括用于数字计算积分,求解微分方程,优化的功能。
- 学校图书馆发生变化的六种方式(永远不变)
- 泽西岛前5名-泽西图书馆儿童图书管理员Linne Omissi的精选书
- 为测验和应用程序流程构建React Stepper库
- 图书馆员应对数字颠覆的四大技巧
- Agora:电子投票库
示例—以正态分布测试偏度和峰度
>>来自scipy进口统计
>>>打印('正常的skewtest teststat =%6.3f pvalue =%6.4f'%stats.skewtest(x))
正常的skewtest teststat = 2.785 pvalue = 0.0054
>>>打印('正常kurtosistest teststat =%6.3f pvalue =%6.4f'%stats.kurtosistes t(x))
正常峰度检验teststat = 4.757 pvalue = 0.0000
>>>打印('normaltest teststat =%6.3f pvalue =%6.4f'%stats.normaltest(x))
normaltest teststat = 30.379 pvalue = 0.0000
熊猫添加了为金融,社会科学和工程学中的实际数据分析而设计的数据结构和工具。 Panda可以很好地处理不完整,混乱且未标记的数据,并提供了用于对数据集进行整形,合并,整形和切片的工具。
例
将熊猫作为pd导入
raw_data = {'first_name':['Jason','Molly','Tina','Jake','Amy'],
'last_name':['Miller','Jacobson',“。”,'Milner','Cooze'],
'年龄':[42,52,36,24,73],
'preTestScore':[4,24,31,“。”,“。”],
'postTestScore':[“ 25,000”,“ 94,000”,57、62、70]}
df = pd.DataFrame(原始数据,列= ['first_name','last_name','age','preTestScore','postTestScore'])
df
Matplotlib是用于创建2D绘图和图形的标准Python库。 它是低级的,这意味着与其他一些高级库相比,它需要附加命令才能生成漂亮的图形和图形。 它非常灵活,并且具有足够的命令,几乎可以使用matplotlib制作所有类型的图形。
例
将numpy导入为np#导入numpy
导入matplotlib.pyplot作为plt#导入matplotlib
#计算正弦和余弦曲线上的点的x和y坐标
x = np.arange(0,3 * np.pi,0.1)
y_sin = np.sin(x)#发现x的罪
y_cos = np.cos(x)#查找x的余弦
#使用matplotlib绘制点
plt.plot(x,y_sin)
plt.plot(x,y_cos)
plt.xlabel('x轴标签')
plt.ylabel('y轴标签')
plt.title('Sine and Cosine')
plt.legend(['Sine','Cosine'])
plt.show()
机器学习位于人工智能和数据科学的交汇处。 通过使用现实世界的数据集训练计算机,我们能够创建进行准确而复杂的预测的算法。 一些用例涉及获得更好的行车路线以及建造可通过查看图片识别路标的计算机。
Scikit-learn通过结合用于常见机器学习和数据挖掘任务(包括聚类,回归和分类)的算法,以NumPy和SciPy为基础。 Scikit-learn工具已得到充分证明,其贡献者包括许多机器学习专家。 这是一个精选库,这意味着开发人员无需在同一算法的不同版本之间进行选择。 它的强大功能和易用性使其在Evernote和Spotify等数据密集型初创企业中广受欢迎。
示例-使用Scikit学习的逻辑回归
将numpy导入为np
导入matplotlib.pyplot作为plt
从sklearn导入linear_model,数据集
#导入一些数据进行播放
虹膜= datasets.load_iris()
X = iris.data [:,:2]#我们仅采用前两个特征。
Y = iris.targe
h = .02#网格中的步长
logreg = linear_model.LogisticRegression(C = 1e5)
#我们创建邻居分类器的实例并拟合数据。
logreg.fit(X,Y)
#绘制决策边界。 为此,我们将为每种颜色分配一种颜色
#点在网格[x_min,x_max] x [y_min,y_max]中。
x_min,x_max = X [:, 0] .min()-.5,X [:, 0] .max()+ .5
y_min,y_max = X [:, 1] .min()-.5,X [:, 1] .max()+ .5
xx,yy = np.meshgrid(np.arange(x_min,x_max,h),np.arange(y_min,y_max,h))
Z = logreg.predict(np.c_ [xx.ravel(),yy.ravel()])
#将结果放入颜色图
Z = Z.reshape(xx.shape)
plt.figure(1,figsize =(4,3))
plt.pcolormesh(xx,yy,Z,cmap = plt.cm.Paired)
#绘制训练点
plt.scatter(X [:, 0],X [:, 1],c = Y,edgecolors ='k',cmap = plt.cm.Paired)
plt.xlabel('头骨长度')
plt.ylabel('笔尖宽度')
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
plt.xticks(())
plt.yticks(())
plt.show()
Google开发的TensorFlow是DistBelief的开源继任者,DistBelief是他们以前训练神经网络的框架。 TensoFlow使用多层节点系统,可让您快速设置,训练和部署具有大型数据集的人工神经网络。 Google可以在其语音识别应用程序中识别照片中的对象或理解口语,主要用于深度学习。
示例-MNIST数据集中的示例(0到9之间的手写数字)
将tensorflow导入为tf mnist = tf.keras.datasets.mnist
(x_train,y_train),(x_test,y_test)= mnist.load_data()x_train,x_test = x_train / 255.0,x_test / 255.0
模型= tf.keras.models.Sequential([tf.keras.layers.Flatten(),tf.keras.layers.Dense(512,activation = tf.nn.relu),tf.keras.layers.Dropout(0.2) ,tf.keras.layers.Dense(10,activation = tf.nn.softmax)])model.compile(optimizer ='adam',loss ='sparse_categorical_crossentropy',metrics = ['accuracy'])
model.fit(x_train,y_train,epochs = 5)model.evaluate(x_test,y_test
Keras是用Python编写的高级神经网络API,能够在TensorFlow,CNTK和Theano之上运行。 它的开发着重于实现快速实验。 能够以最小的延迟将想法付诸实践是进行良好研究的关键。
如果需要深度学习库,您将使用Keras:
- 通过用户友好性,模块化和可扩展性,可以轻松快速地进行原型制作
- 支持卷积网络和循环网络
- 在CPU和GPU上无缝运行
例
从keras.models导入顺序
模型= Sequential()
从keras.layers导入密集
model.add(密集(单位= 64,激活='relu',input_dim = 100))
model.add(密集(单位= 10,激活='softmax'))
model.compile(loss ='categorical_crossentropy',optimizer ='sgd',
指标= ['准确性'])
model.compile(loss = keras.losses.categorical_crossentropy,
Optimizer = keras.optimizers.SGD(lr = 0.01,动量= 0.9,nesterov = True)
model.fit(x_train,y_train,epochs = 5,batch_size = 32)
model.train_on_batch(x_batch,y_batch)
loss_and_metrics = model.evaluate(x_test,y_test,batch_size = 128)
类= model.predict(x_test,batch_size = 128)
Scrapy是一个库,用于创建蜘蛛机器人来系统地爬网并提取结构化数据,例如价格,联系信息和URL。 Scrapy最初是为刮刮而设计的。 它还可以从API中提取数据。
例
进口沙皮
类QuotesSpider(scrapy.Spider):名称=“ quotes”
def start_requests(self):urls = ['http://quotes.toscrape.com/page/1/','http://quotes.toscrape.com/page/2/',],用于url中的url:yield scrapy.Request(URL = URL,callback = self.parse)
def parse(自我,响应):page = response.url.split(“ /”)[-2] filename ='quotes-%s.html'%页面,其中open(filename,'wb')as f:f。 write(response.body)self.log('保存的文件%s'%文件名)
NLTK是为自然语言处理(NLP)设计的一组库。 NLTK的基本功能允许您标记文本,识别命名实体。 它还显示分析树,就像句子图一样,揭示了语音和依存关系。 通过NLTK,可以完成更复杂的操作,例如情感分析和自动摘要。
SpaCy最小且自以为是,它不会像NLTK这样的选项泛滥成灾。 它的理念是为每种目的提供最佳的一种算法。 很少需要做出自以为是的选择,而且可以专注于提高生产力。
由于SpaCy基于Cython构建,因此闪电般快速。 它被认为是“最新技术”。 它的主要缺点是仅是信息提取器,无法完成全套自然语言处理工作。
Gensim是一个经过优化的库,用于主题建模和文档相似性分析。 它的主题建模算法(例如潜在的Dirichlet分配(LDA)实现)是同类最佳的。 它功能强大,高效且可扩展。
只有可以与他人进行交流,分析才有价值。 这些库基于matplotlib,可轻松,直观地创建复杂的图形,图表和地图。
Seaborn是基于matplotlib的基础构建的流行可视化库。 Seaborn的默认样式比matplotlib的更为复杂。 Seaborn是一个高级库,这意味着可以轻松生成各种图,包括热图,时间序列和小提琴图。
例
>>进口seaborn as sns
>>> sns.set(style =“ whitegrid”)
>>>小费= sns.load_dataset(“小费”)
>>> ax = sns.boxplot(x = tips [“ total_bill”])
Bokeh使用JavaScript小部件在现代Web浏览器中绘制交互式,可缩放的图。 Bokeh的功能是它具有3个级别的界面,从允许您快速生成复杂图的高级抽象到为应用程序开发人员提供最大灵活性的低级视图。
Matplotlib用于创建2D绘图和图形。 它是一个低级库,这意味着与高级库相比,它需要更多命令来生成美观的图形和图形。 它具有很大的灵活性,这意味着可以使用matplotlib制作几乎任何类型的图形。
TensorFlow是低级的,这意味着Lego积木帮助实现了机器学习算法,而scikit-learn提供了现成的算法,例如SVM,随机森林,逻辑回归等分类。 由于TensorFlow利用GPU进行更有效的训练,因此它适用于深度学习算法。
Scikit的深度学习功能非常有限。 它最近引入了浅层网络,其多层感知器(MLP)与Kears或TensorFlow相比没有得到很好的优化。
XGBoost同时具有线性模型求解器和树学习算法。 它会智能地进行选择,随后将更多的精力放在难以分类的观测值上。 它具有在单个计算机上执行并行计算的能力,因此速度很快。 它具有执行交叉验证和查找重要变量的其他功能。
特征
- 速度:它可以在Windows和Linux上自动执行并行计算,通常比传统的梯度提升模型快10倍以上
- 输入类型:需要几种类型的输入数据
- 密矩阵:可以取密矩阵
- 稀疏矩阵:可以采用稀疏矩阵
- xgb.DMatrix:它自己的类
- 稀疏性:它接受树状增强器和线性增强器的稀疏输入,并针对稀疏输入进行了优化
- 定制:支持定制的目标功能和评估功能