01.07 我要和import說再見了!這個Python庫能讓我偷偷懶

還記得入門Python數據分析時經常會import幾個庫,下面這幾個可謂是入門學習時的四大護法,Python數據處理和可視化常會用的工具。


我要和import說再見了!這個Python庫能讓我偷偷懶

不知道大家有沒有遇到過這樣一個問題,每次重新開啟一個建模流程或者分析過程時,會重新敲一遍import或者將之前的import代碼copy進去。雖然已經用的滾花爛熟了,但是確耗費不必要的時間。

本篇給大家介紹一個可以偷懶的python庫:pyforest

一個示例

我要和import說再見了!這個Python庫能讓我偷偷懶

看到了吧,開頭什麼都沒import,依然可以正常使用常用庫。


安裝

需要安裝Python3.6以上的版本,然後終端運行:

<code>pip install pyforest/<code>


使用方法


非常簡單!!!

一行代碼就可以解決。

<code>from pyforest import */<code>

如果使用Jupyter或IPython,甚至可以跳過此行,因為pyforest會將其自身添加到自動啟動中。


而且,完成腳本後,可以通過以下方式導出所有導入語句:

<code>active_imports()/<code>

通過這個指令,我們就可以看到腳本所涉及到的全部已經被我省略的庫。

好了,你可能會問,如果需要的庫不在pyforest中怎麼辦?

首先,pyforest支持大部分流行的數據科學庫,比如pandas,numpy,matplotlib,seaborn,sklearn,tensorflow等等,以及常用的輔助庫如os,sys,re,pickle等。

<code>### Data Wrangling
pd = LazyImport("import pandas as pd")

np = LazyImport("import numpy as np")

dd = LazyImport("from dask import dataframe as dd")
SparkContext = LazyImport("from pyspark import SparkContext")

load_workbook = LazyImport("from openpyxl import load_workbook")

### Data Visualization and Plotting
mpl = LazyImport("import matplotlib as mpl")
plt = LazyImport("import matplotlib.pyplot as plt")

sns = LazyImport("import seaborn as sns")

py = LazyImport("import plotly as py")
go = LazyImport("import plotly.graph_objs as go")
px = LazyImport("import plotly.express as px")

dash = LazyImport("import dash")

bokeh = LazyImport("import bokeh")

alt = LazyImport("import altair as alt")

pydot = LazyImport("import pydot")

# statistics
statistics = LazyImport("import statistics")

### Machine Learning
sklearn = LazyImport("import sklearn")
OneHotEncoder = LazyImport("from sklearn.preprocessing import OneHotEncoder")
TSNE = LazyImport("from sklearn.manifold import TSNE")
train_test_split = LazyImport("from sklearn.model_selection import train_test_split")

svm = LazyImport("from sklearn import svm")
GradientBoostingClassifier = LazyImport(
"from sklearn.ensemble import GradientBoostingClassifier"
)
GradientBoostingRegressor = LazyImport(
"from sklearn.ensemble import GradientBoostingRegressor"
)
RandomForestClassifier = LazyImport(
"from sklearn.ensemble import RandomForestClassifier"
)
RandomForestRegressor = LazyImport("from sklearn.ensemble import RandomForestRegressor")

TfidfVectorizer = LazyImport(
"from sklearn.feature_extraction.text import TfidfVectorizer"
)

# TODO: add all the other most important sklearn objects
# TODO: add separate sections within machine learning viz. Classification, Regression, Error Functions, Clustering

# Deep Learning
tf = LazyImport("import tensorflow as tf")
keras = LazyImport("import keras")

# NLP
nltk = LazyImport("import nltk")
gensim = LazyImport("import gensim")
spacy = LazyImport("import spacy")
re = LazyImport("import re")

### Helper
sys = LazyImport("import sys")
os = LazyImport("import os")
re = LazyImport("import re")
glob = LazyImport("import glob")
Path = LazyImport("from pathlib import Path")

pickle = LazyImport("import pickle")

dt = LazyImport("import datetime as dt")

tqdm = LazyImport("import tqdm")/<code>

其次,如果真的沒有也沒關係,pyforest支持向其中添加庫。操作方法也很簡單,找到pyforest庫的user_imports.py文件,然後添加一個語句就好了,比如像下面這樣:

<code>############################# 

### User-specific imports ###
#############################
# You can save your own imports in ~/.pyforest/user_imports.py
# Please note: imports in ~/.pyforest/user_imports.py take precedence over the
# imports above./<code>

所以我們可以根據平時自己的使用習慣添加一套屬於自己的萬能import,爽歪歪了。


有的同學可能還會問,所有的庫添加進入運行速度會不會變慢?

答案是不會,因為只有你後面真正使用了到了pyforest裡的包含的庫,程序才會真正import,否則不會。

以上就是偷懶神器的介紹和使用方法,有興趣的夥伴可以試試了!


分享到:


相關文章: