作者 | 小F       责编 | 欧阳姝黎

大家好,我是小F~

今天给大家介绍一个懒人 Python 库—— Pyforest。

使用一行代码,就能导入所有的 Python 库(本地已经安装的)。

GitHub地址:https://github.com/8080labs/pyforest

介绍

Python 因为有着成千上万个功能强大的开源库,备受大家的欢迎。

目前,通过 PyPl 可以导入超过 23.5 万个 Python 库,数量庞大。

在大家平常的实践当中,一般都是需要导入多个库或者框架来执行任务。

而且每当新建一个程序文件时,都需要根据自己的需求导入相关的库。

如果是相同类型的任务,比如想做一个数据可视化的小项目,可能会一直使用到某个库。

如此,反复编写同一条 import 语句,就算是复制粘贴,也会感觉到麻烦,这时 Pyforest 库就可以上场了。

Pyforest 是一个开源的Python库,可以自动导入代码中使用到的 Python 库。

在进行数据可视化的时候,一般都需要导入多个库,比如 pandas、numpy、matplotlib 等等。

使用了 Pyforest ,每个程序文件中就不需要导入相同的 Python 库,而且也不必使用确切的导入语句。

比如下面这行代码,就可以省略掉。

from sklearn.ensemble import RandomForestClassifier

在你使用 import 语句导入 Pyforest 库后,你就可以直接使用所有的 Python库。

import pyforestdf = pd.read_csv('test.csv')
print(df)

你使用的任何库都不需要使用import语句导入,Pyforest 会为你自动导入。

只有在代码中调用库或创建库的对象后,才会导入库。如果一个库没有被使用或调用,Pyforest 将不会导入它。

使用

安装,使用以下命令安装 Pyforest。

pip install pyforest -i https://pypi.tuna.tsinghua.edu.cn/simple

安装成功后,使用 import 语句导入它。

现在,你可以直接使用相关的 Python 库,无需编写 import 导入。

先以 jupiter notebook 为例,我们没有导入 pandas、seaborn 和 matplotlib 库,但是我们可以通过导入 Pyforest 库直接使用它们。

读取数据,这个是国内棉花产量排行前三的省份,新疆全国第一(数据来源:国家统计局)。

那么 Pyforest 可以导入所有库吗?

目前这个包包含了大部分流行的 Python 库,比如

pandas as pd
NumPy as np
matplotlob.pyplot as plt
seaborn as sns

除了这些库之外,它还提供了一些辅助的 Python 库,如 os、tqdm、re 等。

如果你想查看库列表,可以使用 dir(pyforest) 进行查看,内置的是 68 个库。

import pyforestprint(len(dir(pyforest)))
for i in dir(pyforest):print(i)-------------------------
68
GradientBoostingClassifier
GradientBoostingRegressor
LazyImport
OneHotEncoder
Path
RandomForestClassifier
RandomForestRegressor
SparkContext
TSNE
TfidfVectorizer
...

如果没有的话,可以进行自定义添加,在主目录中的文件写入 import 语句。

示例如下。

vim ~/.pyforest/user_imports.py

添加语句,此处便能在代码中使用 requests 这个库。

# Add your imports here, line by line
# e.g
# import pandas as pd
# from pathlib import Path
# import reimport requests as req
~
~
"~/.pyforest/user_imports.py" 7L, 129C

这回我们在 PyCharm 中来实验一下。

发现 PyCharm 的自动补全的功能失效了,看来这个库还是比较适合 jupyter notebook (自动补全代码还可以使用)。

除了上面这个地方可以自定义添加,还可以在库的 _import.py 文件中添加。

此处以 Pyechars 为例,缩写为 chart。

可视化代码如下。

新疆棉花产量年年上升,其它省份年年下降...

最后 Pyforest 还提供了一些函数来了解库的使用情况。

# 返回已导入并且正在使用的库列表
print(pyforest.active_imports())
--------------------------------
['import pandas as pd', 'import requests as req', 'import pyg2plot']# 返回pyforest中所有Python库的列表
print(pyforest.lazy_imports())
--------------------------------
['import glob', 'import numpy as np', 'import matplotlib.pyplot as plt'...]

只有代码中有使用到的库,程序才会 import 进去,否则不会导入的哦!

总结

好了,到此本期的分享就结束了。

使用到的代码及文件已上传,回复「pyforest」即可获取。

使用 Pyforest 库有时候确实是可以节省一些时间,不过也是有弊端存在的。

比如调试的时候(大型项目),可能会很痛苦,不知道是哪里来的库。

所以建议大家,在一些独立的脚本程序中使用,效果应该还是不错的。

☞三机齐发!五大全球首发的“安卓机皇”4999元起,“安卓之光” 5999元起☞AI 落后要挨打的苹果,5 年疯狂收购 25 家人工智能公司!
☞我为什么最终放弃了 Linux 桌面版的研发

只需一行代码,就能导入所有的Python库?相关推荐

  1. python实现英文新闻摘要自动提取_利用Python实现摘要自动提取,完美瘦身只需一行代码...

    原标题:利用Python实现摘要自动提取,完美瘦身只需一行代码 今天给大家推荐一个也可以用于关键字提取的算法TextRank,但主要实现的功能是快速从长篇新闻中抽取精准摘要. 前言介绍 TextRan ...

  2. 懒人必备!只需一行代码,就能导入所有的Python库

    今天给大家介绍一个懒人Python库--Pyforest. 使用一行代码,就能导入所有的Python库(本地已经安装的). GitHub地址:https://github.com/8080labs/p ...

  3. 【CVPR2020 Oral】只需一行代码就可提升迁移性能

    关注上方"深度学习技术前沿",选择"星标公众号", 精选文章,第一时间送达! 作者:Hassassin 知乎链接:https://zhuanlan.zhihu. ...

  4. 实现一个在JNI中调用Java对象的工具类,从此只需一行代码

    前言 我们知道在jni中执行一个java函数需要调用几行代码才行,如 jclass objClass = (*env).GetObjectClass(obj); jmethodID methodID ...

  5. 【Python】Modin,只需一行代码加速你的Pandas

    本文翻译自:Shrivarsheni的博客 Modin是一个Python第三方库,可以通过并行来处理大数据集.它的语法和pandas非常相似,因其出色的性能,能弥补Pandas在处理大数据上的缺陷. ...

  6. [JavaScript]只需一行代码,轻松搞定快捷留言-V2升级版

    前天熬了大半宿发了一篇[一行代码轻松搞定快捷留言功能],同时发布了V1.0beta版的快捷留言功能和源代码,之所以是beta版,就是当时感觉虽然基本功能有了,但是还不够完善,特性也不一定合理,今天不知 ...

  7. 只需一行代码实现增删查改,微软已经让我们很简单。谈AccessDataSource的使用。...

    这是一个很简单的内容.日常我们总腻烦做增删查改这样的重复性的劳动,如果你的项目不是太大,如果你的团队很小,或许就是你一个人,那么就完全可以参考以下这样简单的方式.微软已经给我们做了.我们只要写一行代码 ...

  8. [JavaScript]只需一行代码,轻松搞定快捷留言功能

    快捷留言功能,就是您现在看到在右侧浮动的那个小玩意,通过它可以直接提交留言并推荐,您想在博客里加上这个功能吗? 别急,方法非常简单,还是先听我说说它的来历吧... 最开始,快捷留言这个功能要追溯到发表 ...

  9. 模型秒变API只需一行代码,支持TensorFlow等框架

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转自机器之心 参与:一鸣.杜伟 还在为机器学习模型打包成 API 发愁?这个工具能让你一行代码直接打包. 专注于机器学习应用的人们知道,从训练好的模 ...

最新文章

  1. MySQL列的别名 insert into select from
  2. win messenger启动随outlook explorer
  3. SessionLocaleResolver
  4. 分布式缓存memcached
  5. bat窗口大小设置_8-Flink中的窗口
  6. 手工打造目标PE的步骤
  7. 笨办法学 Python · 续 练习 4:处理命令行参数
  8. selenium常用方法
  9. Django进阶之CSRF
  10. python爬虫框架scrapy实例详解
  11. Linux的打开文件表:打开文件表、文件描述符、打开的文件句柄以及i-node之间的关系
  12. 方维团购V3.07版本短信插件开发
  13. 菜单栏找不到不见了,页面和别人电脑显示的不一致,排查不出问题
  14. wor2007添加分节符
  15. 关于ListView的删除刷新列表
  16. STM32F411核心板固件库开发(一) GPIO基本配置
  17. nyoj 83-迷宫寻宝(二) (计算几何, 叉积)
  18. redis + laravel5.5
  19. 用户来了留不住? 5个方法,帮你提高产品黏性和用户“回头率”
  20. com.sec.android.app.keyguard,android - 查找/ system / app的APK名称 - 堆栈内存溢出

热门文章

  1. LeetCode 415. 字符串相加 (逢十进一模版字符处理)
  2. 如何禁用不需要的HTTP方法
  3. poj2689Prime Distance
  4. 青橙 A1280. 最长双回文串
  5. 初学Python之谈
  6. 当你输入一个网址的时候,实际会发生什么?(转)
  7. sqlite 中出现的database table is locked 解决办法
  8. SQL Server 查询处理中的各个阶段
  9. 查看MySQL以及SQL Server 实际存储类型
  10. Spyder远程连接矩池云