国产免费牲交视频无遮挡_偷偷鲁视频成人免费视频_中文无码 日韩精品_曰韩无码人妻中文字幕

新聞資訊

新聞資訊
首頁 > 新聞資訊 > 正文內(nèi)容

python做網(wǎng)站web開發(fā)(Python做網(wǎng)站)

時(shí)間:2023-11-22 信途科技新聞資訊

全文共6260字,預(yù)計(jì)學(xué)習(xí)時(shí)長13分鐘

不了解任何網(wǎng)頁框架?沒關(guān)系,本文將教你如何輕松搞定從數(shù)據(jù)科學(xué)項(xiàng)目到超棒程序的無縫轉(zhuǎn)換。

圖片來源:Cody Black Unsplash

稍作休息,開始編碼。

機(jī)器學(xué)習(xí)項(xiàng)目只有充分展示給公眾時(shí)才稱得上是完整的項(xiàng)目。

過去在介紹數(shù)據(jù)科學(xué)項(xiàng)目時(shí),選擇合適的可視化操作或簡單的PPT就足夠了,但現(xiàn)在隨著像RShiny和Dash這類儀表盤化工具的出現(xiàn),一名合格的數(shù)據(jù)科學(xué)家也需要掌握一定的Web框架的知識(shí)。

可Web框架也不是塊好啃的骨頭。筆者在嘗試一些看似簡單的操作時(shí),仍會(huì)被HTML、CSS和Javascript等搞得暈頭轉(zhuǎn)向,于數(shù)次實(shí)踐中嘗遍失敗的滋味。

對(duì)數(shù)據(jù)科學(xué)同胞們來說,Web開發(fā)只是次要技能,所以更別提嘗試多種途徑做這一件事了,會(huì)讓這些人不知所措的。

那我們就注定避免不了Web框架的學(xué)習(xí)之路嗎?還是說大半夜的給開發(fā)人員打電話問一些很蠢的問題?

于是StreamLit帶著自身的使命出現(xiàn)了,它僅借助Python就能夠創(chuàng)建Web應(yīng)用程序。

Python的宗旨:簡單勝于復(fù)雜,而Streamlit創(chuàng)建應(yīng)用程序則完美地詮釋了其易操作性。

這篇文將為大家講解何使用Streamlit來創(chuàng)建支持?jǐn)?shù)據(jù)科學(xué)項(xiàng)目的應(yīng)用程序。

安裝

安裝步驟跟運(yùn)行指令一樣簡單:

pip install streamlit

查看是否安裝成功時(shí)只需運(yùn)行:

streamlit hello

屏幕上應(yīng)該顯示的是:

可以在瀏覽器中訪問本地URL:localhost:8501,來查看執(zhí)行中的Streamlit應(yīng)用程序。開發(fā)人員那里也有許多很棒的樣本可供嘗試。

Streamlit“你好,世界”

Streamlit旨在通過簡單的Python代碼實(shí)現(xiàn)簡單的程序開發(fā)。

那就設(shè)計(jì)一款簡單的應(yīng)用程序,看看它是否真的像它說的那樣。

從Streamlit的名為“hello,world”的程序入手,這個(gè)程序并不復(fù)雜。只需要復(fù)制粘貼下面這個(gè)代碼到“helloworld.py”的文件夾中即可。

import streamlit as st

x = st.slider('x')

st.write(x, 'squared is', x * x)

然后到最后運(yùn)行階段時(shí):

streamlit run helloworld.py

看吧,瀏覽器連接到localhost:8501,就可以看到執(zhí)行中的程序,滑動(dòng)鼠標(biāo)就可以得到結(jié)果。

簡單的滑塊插件應(yīng)用程序

操作非常簡單。在構(gòu)建上圖應(yīng)用程序時(shí),用到了Streamlit的兩個(gè)特性:

? st.slider插件——滑動(dòng)改變Web應(yīng)用程序的輸出內(nèi)容。

? 以及通用的st.write 指令。筆者對(duì)于它能從圖標(biāo)、數(shù)據(jù)框和簡單的文本中編寫任何東西感到驚訝。后面會(huì)有詳細(xì)介紹。

敲黑板:大家要記住每次改變插件值時(shí),整個(gè)應(yīng)用程序都會(huì)由上至下運(yùn)行。

Streamlit插件

插件提供了控制應(yīng)用程序的方法,閱讀了解插件的最佳選擇就是API參考文檔,不過筆者這里也會(huì)講解一些插件,它們都是用戶在操作后期會(huì)用的最主要的插件。

1. 滑塊

streamlit.slider(label, min_value=None, max_value=None, value=None, step=None, format=None)

在上文已經(jīng)目睹了st.slider的執(zhí)行過程,它可以結(jié)合min_value、max_value使用,用于進(jìn)一步得到一定范圍內(nèi)的輸入內(nèi)容。

2. 文本輸入

獲取用戶輸入最簡單的方式是輸入U(xiǎn)RL或一些用于分析情緒的文本內(nèi)容,需要的只是一個(gè)用來命名文本框的標(biāo)簽。

import streamlit as st

url = st.text_input('Enter URL')

st.write('The Entered URL is', url)

看到的程序?qū)⑹沁@樣:

簡單的text_input widget程序

貼士:可以只改變helloworld.py文件然后刷新頁面。筆者的做法是打開該文件然后在文本編輯器中改動(dòng),再一點(diǎn)一點(diǎn)查看變動(dòng)的地方。

3. 復(fù)選框

復(fù)選框的一個(gè)功能就是隱藏或顯示/隱藏程序中的特定區(qū)域,另一個(gè)用途是設(shè)置函數(shù)的布爾參數(shù)值。st.checkbox() 需要一個(gè)參數(shù),即插件標(biāo)簽。在該應(yīng)用程序中,復(fù)選框會(huì)用來切換條件語句。

import streamlit as st

import pandas as pd

import numpy as np

df = pd.read_csv("football_data.csv")

if st.checkbox('Show dataframe'):

st.write(df)

簡單的復(fù)選框插件應(yīng)用程序

4. 下拉框插件

通過st.selectbox可以在一系列選項(xiàng)或列表中進(jìn)行選擇。常見的用法是將其作為下拉項(xiàng)然后從名單中挑選值。

import streamlit as st

import pandas as pd

import numpy as np

df = pd.read_csv("football_data.csv")option = st.selectbox(

'Which Club do you like best?',

df['Club'].unique())

'You selected: ', option

簡單的下拉框/復(fù)選框插件程序

5. 多選插件

也可以用下拉框內(nèi)的多個(gè)值。這里講的是使用 st.multiselect在變量選選中獲取多個(gè)值作為列表。

import streamlit as st

import pandas as pd

import numpy as np

df = pd.read_csv("football_data.csv")

options = st.multiselect(

'What are your favorite clubs?', df['Club'].unique())

st.write('You selected:', options)

簡單的下拉框插件應(yīng)用程序

一步步創(chuàng)建應(yīng)用程序

重要插件了解的也差不多了,現(xiàn)在馬上要用多個(gè)插件創(chuàng)建應(yīng)用程序。

從簡單的步驟入門,嘗試使用Streamlit對(duì)足球數(shù)據(jù)進(jìn)行可視化。有了上面那些插件,這個(gè)步驟執(zhí)行起來會(huì)容易很多。

import streamlit as st

import pandas as pd

import numpy as np

df = pd.read_csv("football_data.csv")

clubs = st.multiselect('Show Player for clubs?', df['Club'].unique())

nationalities = st.multiselect('Show Player from Nationalities?', df['Nationality'].unique())

# Filter dataframe

new_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]

# write dataframe to screen

st.write(new_df)

簡單的應(yīng)用程序會(huì)是這樣的:

同時(shí)使用多個(gè)插件

這一點(diǎn)也不難,但目前看起來似乎太基礎(chǔ)了。是否可以考慮加入一些圖表呢?

Streamlit當(dāng)前支持許多用于繪圖的庫,其中就有Plotly, Bokeh, Matplotlib, Altair和Vega圖表。Plotly Express也可以,只不過沒有詳細(xì)說明。也存在一些內(nèi)嵌式圖表,相當(dāng)于Streamlit“自帶”的,比如st.line_chart 和st.area_chart.

此時(shí)會(huì)用到plotly_express,下面是設(shè)計(jì)程序會(huì)用到的代碼。該過程只會(huì)調(diào)用Streamlit四次。剩下的都是一些簡單的Python代碼操作。

import streamlit as st

import pandas as pd

import numpy as np

import plotly_express as px

df = pd.read_csv("football_data.csv")

clubs = st.multiselect('Show Player for clubs?', df['Club'].unique())

nationalities = st.multiselect('Show Player from Nationalities?', df['Nationality'].unique())new_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]

st.write(new_df)

# create figure using plotly express

fig = px.scatter(new_df, x ='Overall',y='Age',color='Name')

# Plot!

st.plotly_chart(fig)

添加圖表

改進(jìn)

在本文一開始有提到插件每次發(fā)生變動(dòng)時(shí),整個(gè)應(yīng)用程序就會(huì)由上至下地運(yùn)行。其實(shí)并不可行,因?yàn)閯?chuàng)建的應(yīng)用程序會(huì)保留下深度學(xué)習(xí)模型或復(fù)雜的機(jī)器學(xué)習(xí)模型。接下來在講Streamlit的緩存時(shí)會(huì)向讀者闡釋這一點(diǎn)。

1. 緩存

在這個(gè)簡單的程序里,但凡值有所變動(dòng)時(shí),數(shù)據(jù)科學(xué)家們就會(huì)反復(fù)瀏覽數(shù)據(jù)框。它比較適用于用戶手中的小規(guī)模數(shù)據(jù),至于大規(guī)?;蛐枰M(jìn)行很多步處理的數(shù)據(jù),它是不予理睬的。接下來在Streamlit中通過st.cache裝飾器函數(shù)體驗(yàn)緩存的功能吧。

import streamlit as st

import pandas as pd

import numpy as np

import plotly_express as px

df = st.cache(pd.read_csv)("football_data.csv")

或者是復(fù)雜一些、時(shí)間耗費(fèi)久一些的函數(shù),只需要運(yùn)行一次,此時(shí)可以用:

@st.cache

def complex_func(a,b):

DO SOMETHING COMPLEX

# Won't run again and again.

complex_func(a,b)

用Streamlit的緩存裝飾器標(biāo)記函數(shù)時(shí),無論這個(gè)函數(shù)是否執(zhí)行,都會(huì)檢查輸入的參數(shù)值(由該函數(shù)處理的)。

如果Streamlit之前沒有處理過這些數(shù)據(jù),它會(huì)調(diào)用函數(shù)并將運(yùn)算結(jié)果存到本地緩存中。

下次再調(diào)用函數(shù)時(shí),倘若還是這些參數(shù),Streamlit就會(huì)完全跳過這一塊的函數(shù)執(zhí)行,直接用緩存器里的結(jié)果數(shù)據(jù)。

2. 側(cè)邊欄

為了根據(jù)個(gè)人的傾向需求使界面更加簡潔,用戶可能會(huì)想著把插件移動(dòng)到側(cè)邊欄內(nèi),比如像Rshiny儀表盤。這非常簡單,只需在插件代碼中添加 st.sidebar即可。

import streamlit as st

import pandas as pd

import numpy as np

import plotly_express as px

df = st.cache(pd.read_csv)("football_data.csv")

clubs = st.sidebar.multiselect('Show Player for clubs?', df['Club'].unique())

nationalities = st.sidebar.multiselect('Show Player from Nationalities?', df['Nationality'].unique())

new_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]

st.write(new_df)

# Create distplot with custom bin_size

fig = px.scatter(new_df, x ='Overall',y='Age',color='Name')

# Plot!

st.plotly_chart(fig)

將插件移動(dòng)到側(cè)邊欄內(nèi)

3. Markdown標(biāo)記語言可以嗎?

筆者特別喜歡在Markdown里編輯文字,因?yàn)榘l(fā)現(xiàn)相比HTML,它少了那些繁瑣的操作,而且更能勝任數(shù)據(jù)科學(xué)的任務(wù)。所以讀者也能在Streamlit程序中應(yīng)用Markdown嗎?

答案是可以。而且是有跡可循的。在筆者看來,最合適的就是調(diào)用Magic指令。通過該指令,用戶做標(biāo)記語言就會(huì)像寫評(píng)論一樣簡單。用戶也可以使用指令st.markdown。

import streamlit as st

import pandas as pd

import numpy as np

import plotly_express as px'''

# Club and Nationality App

This very simple webapp allows you to select and visualize players from certain clubs and certain nationalities.

'''

df = st.cache(pd.read_csv)("football_data.csv")

clubs = st.sidebar.multiselect('Show Player for clubs?', df['Club'].unique())

nationalities = st.sidebar.multiselect('Show Player from Nationalities?', df['Nationality'].unique())new_df = df[(df['Club'].isin(clubs)) & (df['Nationality'].isin(nationalities))]

st.write(new_df)

# Create distplot with custom bin_size

fig = px.scatter(new_df, x ='Overall',y='Age',color='Name')

'''

### Here is a simple chart between player age and overall

'''

st.plotly_chart(fig)

最終的樣品

總結(jié)

Streamlit已經(jīng)介紹了整個(gè)創(chuàng)建應(yīng)用程序的步驟,筆者真沒什么可補(bǔ)充的了。

這篇文章中講述了一個(gè)簡單網(wǎng)頁程序的創(chuàng)建,但有太多未知數(shù)了。舉個(gè)例子,在Streamlit網(wǎng)站碰到GAN時(shí),只會(huì)選擇插件和緩存的指導(dǎo)思想。

筆者對(duì)程序的默認(rèn)顏色和風(fēng)格很喜愛,而且發(fā)現(xiàn)這用起來比Dash還順手,筆者創(chuàng)建新程序之前一直用的是Dash。讀者們也可以在自己的Streamlit程序中加上音頻和視頻項(xiàng)。

最重要的是,Streamlit是一款免費(fèi)的開源軟件,而不是開箱即用的私人網(wǎng)絡(luò)應(yīng)用。

以前筆者遇到任何變動(dòng)或問題,都需要請(qǐng)教身邊的程序猿朋友;而現(xiàn)在,完全不會(huì)這么麻煩了。

筆者的目標(biāo)是從現(xiàn)在開始,在工作流中多用這個(gè)程序。即便是不難的任務(wù),也會(huì)考慮用它,筆者覺得你也可以。

雖然筆者還未曾想過在生產(chǎn)環(huán)境下它執(zhí)行的好壞,但對(duì)于概念項(xiàng)目和演示的小型驗(yàn)證來說,它算得上是福音了。筆者的目標(biāo)是從現(xiàn)在開始,在工作流中多用這個(gè)程序。即便是不難的任務(wù),也會(huì)考慮用它,筆者覺得你也可以。

完整代碼:https://github.com/MLWhiz/streamlit_football_demo

留言 點(diǎn)贊 關(guān)注

我們一起分享AI學(xué)習(xí)與發(fā)展的干貨

如需轉(zhuǎn)載,請(qǐng)后臺(tái)留言,遵守轉(zhuǎn)載規(guī)范

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系站長刪除。

轉(zhuǎn)載請(qǐng)注明出處http://macbookprostickers.com/xintu/10334.html

相關(guān)文章

深圳哪里有做網(wǎng)站的(哪里找專業(yè)做網(wǎng)站的人)

隨著互聯(lián)網(wǎng)的迅速發(fā)展,也有更多的企業(yè)商家想要做一個(gè)自己的網(wǎng)站,那么現(xiàn)在市面上做網(wǎng)站的公司也不盡其數(shù)。今天深圳鴻韻天成網(wǎng)絡(luò)公司就給大家說一說如何選擇一家靠譜的做網(wǎng)站的公司。一家成熟的網(wǎng)站建設(shè)公司肯定會(huì)...

網(wǎng)絡(luò)營銷定價(jià)的五種策略,網(wǎng)絡(luò)營銷定價(jià)的特點(diǎn)和策略

網(wǎng)頁策略 在互聯(lián)網(wǎng)上設(shè)立網(wǎng)站是企業(yè)進(jìn)行網(wǎng)絡(luò)營銷的基礎(chǔ)在網(wǎng)絡(luò)市場空間企業(yè)的網(wǎng)站即代表著企業(yè)自身的形象企業(yè)要想成功的開展網(wǎng)絡(luò)營銷產(chǎn)品策略 網(wǎng)絡(luò)的逐漸發(fā)展,使消費(fèi)者與廠商的直接對(duì)話成為了可能,消費(fèi)個(gè)性化受到...

北京做網(wǎng)站好(北京做網(wǎng)站的公司有哪些)

這是對(duì)白的第 37 期分享分享 l 對(duì)白的算法屋(ID:duibainotes)大家好,我是對(duì)白。今天給大家整理了2021年北京互聯(lián)網(wǎng)公司非官方排名。歡迎留言討論~以下排名均不分先后,上榜即可一線互聯(lián)...

網(wǎng)絡(luò)營銷怎么跟用戶刷存在感的簡單介紹

經(jīng)常有朋友在微信朋友圈或者網(wǎng)絡(luò)上通過各種形式“刷存在感”,這本來無可 自然營銷也就變得輕而易舉起來 許多人看到“大師水餃”和“給董建華做菜。面臨著信息過剩和用戶時(shí)間的極度碎片化的局勢,品牌營銷怎么才干...

“浙江幫”催熟精致露營

作者|廿四“去年開發(fā)的一款帳篷,五一一上架就賣空了?!薄皫缀趺刻於荚诩影嘹s進(jìn)度,節(jié)前訂單已經(jīng)排滿,再有訂單只能五一之后了。”五一戶外頂流非“露營”莫屬。天貓數(shù)據(jù)顯示,今年五一前天貓露營相關(guān)消費(fèi)的同比增...

網(wǎng)絡(luò)營銷常用工具總結(jié),企業(yè)開展網(wǎng)絡(luò)營銷的背景常用工具和方法

最近為大家整理了一波工具,里面有一些是經(jīng)常用的,選擇合適自己,并且順手的工具,這樣工作的時(shí)候可以起到事半功倍的作用。最近為大家整理了一波工具,里面有一些是經(jīng)常用的,有一些是偶爾用的,還有一些是我自己用...

現(xiàn)在,非常期待與您的又一次邂逅

我們努力讓每一次邂逅總能超越期待

  • 效果付費(fèi)
    效果付費(fèi)

    先出效果再付費(fèi)

  • 極速交付
    極速交付

    響應(yīng)速度快,有效節(jié)省客戶時(shí)間

  • 1對(duì)1服務(wù)
    1對(duì)1服務(wù)

    專屬客服對(duì)接咨詢

  • 持續(xù)更新
    持續(xù)更新

    不斷升級(jí)維護(hù),更好服務(wù)用戶