超越NumPy和Pandas:三个鲜为人知的Python库( 二 )

该示例强调了Dask处理大规模数据集的能力 , 即使是在机器学习问题的情况下 , 也可以通过在多个内核之间分布计算来实现 。
具体而言 , 可以使用dask_datasets.make_classification()方法为分类问题创建一个“Dask dataset”  , 并且可以指定样本数量和块大小(甚至是非常巨大的数量) 。
与之前类似 , 预测结果是通过compute()方法获得的 。
# 注意:# 在这种情况下 , 可能需要安装模块`dask_ml` 。# 可以按以下方式进行安装:$ pip install dask_ml功能三:高效图像处理Dask所利用的并行处理能力也可以应用于图像处理 。
特别是可以打开多个图像 , 调整其大小 , 并保存调整后的图像 。可以按以下方式操作:
import dask.array as daimport dask_image.imreadfrom PIL import Image# 使用Dask加载图像集合images = dask_image.imread.imread('image*.jpg')# 并行调整图像大小resized_images = da.stack([da.resize(image, (300, 300)) for image in images])# 计算结果result = resized_images.compute()# 保存调整后的图像for i, image in enumerate(result):resized_image = Image.fromarray(image)resized_image.save(f'resized_image_{i}.jpg')因此 , 下面是整个过程:

  1. 使用dask_image.imread.imread("image*.jpg")方法打开当前文件夹中的所有".jpg"图像(或者可以指定一个文件夹) 。
  2. 使用da.stack()方法和列表推导式将所有图像的大小调整为300x300 。
  3. 使用compute()方法计算结果 , 就像之前一样 。
  4. 使用for循环保存所有调整过大小的图像 。
2.SymPySympy简介如果需要进行数学计算 , 并希望使用Python进行操作 , 可以尝试使用SymPy 。
正如他们在网站上所写的介绍那样 , Sympy是:
【Sympy】:https://www.sympy.org/en/index.html
一个用于符号数学的Python库 。它旨在成为一个功能齐全的计算机代数系统(CAS) , 同时保持代码尽可能简单 , 以便易于理解和扩展 。SymPy完全使用Python编写 。
但是为什么要使用SymPy?他们提到:
SymPy具有以下特点:
  • 免费:SymPy采用BSD许可证 , 既具有言论自由 , 也免费 。
  • 基于Python:SymPy完全使用Python编写 , 并使用Python作为其语言 。
  • 轻量级:SymPy仅依赖于mpmath , 这是一个用于任意浮点数算术的纯Python库 , 因此易于使用 。
  • 作为库存在:除了作为交互工具使用外 , SymPy还可以嵌入到其他应用程序中 , 并使用自定义函数进行扩展 。
因此 , 它基本上具备了所有Python爱好者所喜爱的特性!
现在来查看一下它的部分功能 。
SymPy的一些功能首先 , 需要安装它:
$ pip install sympy 请注意:如果写成`$ pip install simpy` , 将安装另一个(完全不同的!)库 。因此 , 第二个字母是"y" , 而不是"i" 。功能一:解代数方程如果需要解代数方程 , 可以这样使用SymPy:
from sympy import symbols, Eq, solve# 定义符号x, y = symbols('x y')# 定义方程equation = Eq(x**2 + y**2, 25)# 解方程solutions = solve(equation, (x, y))# 打印解print(solutions)>>>[(-sqrt(25 - y**2), y), (sqrt(25 - y**2), y)]所以 , 这就是整个过程:
  1. 使用symbols()方法定义方程的符号 。
  2. 使用Eq方法编写代数方程 。
  3. 使用solve()方法解方程 。
正如上述所看到的 , SymPy是一个非常易读和用户友好的Python库 。
功能二:计算导数计算导数是在分析数据时可能需要的另一个数学任务 , 原因有很多 。通常情况下 , 可能因为各种原因需要进行计算 , 而SymPy真正简化了这个过程 。实际上 , 可以这样做 , 如下所示:
from sympy import symbols, diff# 定义符号x = symbols('x')# 定义函数f = x**3 + 2*x**2 + 3*x + 4# 计算导数derivative = diff(f, x)# 打印导数print(derivative)>>>3*x**2 + 4*x + 3


推荐阅读