<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          最強(qiáng)Python數(shù)據(jù)分析工具!Jupyter Notebook,竟還有這個(gè)功能!

          共 4676字,需瀏覽 10分鐘

           ·

          2022-06-25 09:07

          題圖:凡人修仙傳

          Jupyter Notebook應(yīng)該很多同學(xué)都或多或少有所了解,但是,很多同學(xué) 還停留在Python、數(shù)據(jù)分析、交互式開發(fā)。

          其實(shí),除了這些之外,Jupyter Notebook還可以完成很多你意想不到的事情。

          例如,Python工具包開發(fā)、創(chuàng)建幻燈片、創(chuàng)建電子書、寫博客、寫報(bào)告、數(shù)據(jù)看板、REST API、網(wǎng)頁應(yīng)用等。

          以網(wǎng)頁應(yīng)用為例,提起開發(fā)一個(gè)網(wǎng)頁應(yīng)用,很多同學(xué)第一印象都會(huì)想到需要前端、后端、服務(wù)部署等繁瑣的步驟,需要具備html、JavaScript、Java或者Python、Django知識(shí)。

          其實(shí),通過Jupyter Notebook就可以開發(fā)一款可部署的網(wǎng)頁應(yīng)用。

          下面,就以一個(gè)圖像處理的網(wǎng)頁應(yīng)用為例給大家演示一下。

          準(zhǔn)備工作

          在正式的開發(fā)之前,先把開發(fā)環(huán)境配置、Python工具包這些基本的準(zhǔn)備工作做一下。

          環(huán)境配置

          創(chuàng)建一個(gè)虛擬環(huán)境,單獨(dú)的用于這個(gè)網(wǎng)頁應(yīng)用,虛擬環(huán)境的好處就可以實(shí)現(xiàn)不同應(yīng)用之間的環(huán)境隔離,避免不同項(xiàng)目/應(yīng)用依賴不同版本的工具包導(dǎo)致沖突。

          virtualenv sketchenv
          source sketchenv/bin/activate

          這里的sketchenv是虛擬環(huán)境 的名稱,你也可以起其他名稱。

          安裝工具包

          下面,就是按照開發(fā)網(wǎng)頁應(yīng)用需要的一些工具包:

          mljar-mercury
          opencv-python-headless
          pillow
          matplotlib 

          其中,mercury是一款能夠?qū)upyter notebook轉(zhuǎn)換成網(wǎng)頁 應(yīng)用的框架,其余的幾款都是用于圖像處理的工具包。


          正式開始

          下面,就正式開始開發(fā)工具。

          首先,打開一個(gè)Jupyter Notebook的窗口:

          jupyter notebook

          然后,導(dǎo)入一些需要用到的Python工具包并對(duì)圖像進(jìn)行一下初始設(shè)置:

          import os
          import cv2
          from PIL import Image
          from matplotlib import pyplot as plt

          import matplotlib as mpl
          mpl.rcParams['figure.figsize'] = (12,12)
          mpl.rcParams['axes.grid'] = False

          在Jupyter Notebook打開一個(gè)新的單元格,輸出以下代碼,謹(jǐn)記,需要新打開一個(gè),不能和其他單元格的代碼放在一起:

          image_path = "/home/jackpop/Downloads/house.jpg"
          output_dir = "output_images"

          image_path是一個(gè)要處理圖像的路徑,output_dir是目錄名,用于保存處理好的新圖像。

          在下一個(gè)單元中,將定義一個(gè)顯示圖像的函數(shù):

          def imshow(image, title=None, fname=None):
              if len(image.shape) > 3:
                  image = tf.squeeze(image, axis=0)

              plt.imshow(image)
              plt.axis('off')
              if title:
                  plt.title(title)
              if fname:
                  plt.savefig(fname)

          然后,載入圖像并顯示:

          img = cv2.imread(image_path)
          RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
          imshow(RGB_img)

          你會(huì)看到下圖:

          現(xiàn)在開始對(duì)圖像進(jìn)行處理,生成藝術(shù)素描圖像:

          # 圖像轉(zhuǎn)化
          grayed = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
          inverted = cv2.bitwise_not(grayed)
          blurred = cv2.GaussianBlur(inverted, (1919), sigmaX=0, sigmaY=0)
          def blend(x, y):
              return cv2.divide(x, 255 - y, scale=256)
          final_result = blend(grayed, blurred)

          # 保存圖像
          _ = cv2.imwrite(os.path.join(output_dir, "sketch_photo.jpg"), final_result)

          # 顯示圖像
          RGB_img = cv2.cvtColor(final_result, cv2.COLOR_BGR2RGB)
          imshow(RGB_img)

          經(jīng)過處理之后,你會(huì)看到如下圖像:

          到這里,核心的代碼都已經(jīng)完成了,已經(jīng)有了Jupyter Notebook代碼,那么,該怎么編程網(wǎng)頁應(yīng)用呢?


          這就用到前面安裝的工具包mercury,前面 已經(jīng)介紹,它可以將Jupyter Notebook轉(zhuǎn)化成網(wǎng)頁應(yīng)用。

          首先,執(zhí)行如下命令:

          mercury watch sketch_app.ipynb

          在瀏覽器中打開http://127.0.0.1:8000/鏈接,會(huì)看到一個(gè)卡片,如下所示:

          請(qǐng)點(diǎn)擊卡片,你會(huì)看到它的警告信息,告訴你缺少YAML頭。

          這就涉及到mercury中的一個(gè)比較重要的東西,配置信息,它是一種yaml格式的配置信息 ,主要包含標(biāo)題、配置參數(shù)等內(nèi)容。

          下面,就在Jupyter Notebook開頭創(chuàng)建一個(gè)RAW格式的單元,輸入相關(guān)的yaml配置信息:

          ---
          title: Convert Photo to Sketch ???
          description: Create sketch from uploaded a photo
          show-code: False
          params:
              image_path:
                  input: file
                  label: Please upload a photo
              output_dir:
                  output: dir
          ---

          YAML配置包含如下信息:

          • title:應(yīng)用程序的標(biāo)題
          • description:描述應(yīng)用程序的文本
          • show-code:是否顯示或隱藏Notebook代碼
          • params:Jupyter Notebook代碼用到的參數(shù)以及相關(guān)組件,這里面用到2個(gè)組件:
          • image_path:文件小組件,變量image_path將被替換成上傳文件的路徑
          • output_dir:目錄小組件,對(duì)應(yīng)代碼中輸出目錄的變量

          然后,再打開http://127.0.0.1:8000/,就可以看到,這個(gè)網(wǎng)頁應(yīng)用就可以用了,可以選擇圖片、上傳圖片并處理圖片。

          如果你想持久化部署,可以通過docker等工具進(jìn)行打包部署到服務(wù)器或者云上,然后隨時(shí)就都可以用了。

          這里只是一個(gè)圖像處理工具的例子,除此之外,我們還可以通過調(diào)用api實(shí)現(xiàn)翻譯工具、數(shù)據(jù)看板、pdf編輯等工具,都變得非常簡單。



          推薦閱讀:

          入門: 最全的零基礎(chǔ)學(xué)Python的問題  | 零基礎(chǔ)學(xué)了8個(gè)月的Python  | 實(shí)戰(zhàn)項(xiàng)目 |學(xué)Python就是這條捷徑


          干貨:爬取豆瓣短評(píng),電影《后來的我們》 | 38年NBA最佳球員分析 |   從萬眾期待到口碑撲街!唐探3令人失望  | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個(gè)海量小姐姐素描圖 |碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影


          趣味:彈球游戲  | 九宮格  | 漂亮的花 | 兩百行Python《天天酷跑》游戲!


          AI: 會(huì)做詩的機(jī)器人 | 給圖片上色 | 預(yù)測(cè)收入 | 碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影


          小工具: Pdf轉(zhuǎn)Word,輕松搞定表格和水??! | 一鍵把html網(wǎng)頁保存為pdf!|  再見PDF提取收費(fèi)! | 用90行代碼打造最強(qiáng)PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換 | 制作一款釘釘?shù)蛢r(jià)機(jī)票提示器! |60行代碼做了一個(gè)語音壁紙切換器天天看小姐姐!



          年度爆款文案

          點(diǎn)閱讀原文,看B站我的20個(gè)視頻!

          瀏覽 67
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费看黄片网站 | 亚洲黄色免费在线观看 | 中国一级久久毛 | 囯产精品久久久久久久久久乐趣播 | 黄色电影网站免费在线观看 |