比較共享單車各使用者類別的平均騎行時間趨勢

2022-09-14 22:39:20 字數 2939 閱讀 9282

學習目標:

掌握使用布林型陣列進行資料過濾

掌握如何構造ndarry

熟悉matplotlib中影象元素的相關操作

一、明確任務

比較共享單車各使用者類別(會員/非會員)的平均騎行時間

二、資料過濾

numpy中廣播操作,numpy會將標量擴充套件成與要比較的陣列同形狀的乙個陣列,然後就可以一一對比。

一列資料與乙個資料匹配:廣播

共享單車會員/非會員的平均騎行時間

#資料收集+資料清洗

defcollect_process_data():

data_arr_list =

for data_filename in

data_filenames:

data_file =os.path.join(data_path,data_filename)

data_arr = np.loadtxt(data_file,delimiter='

,',dtype='

str',skiprows=1)#

讀取資料

#去掉雙引號

cln_data_arr = np.core.defchararray.replace(data_arr,'

"',''

)

return

data_arr_list

#資料分析

defget_mean_duration_by_type(data_arr_list,member_type):

mean_duration =

#一列資料與乙個資料匹配:廣播

for data_arr in

data_arr_list:

bool_arr = data_arr[:,-1] ==member_type

filtered_arr = data_arr[bool_arr]#

過濾操作

mean_duration = np.mean(filtered_arr[:,0].astype('

float

') / 1000 / 60)

return

mean_duration

#結果展示

defs**e_show_result(member_mean_list,casual_mean_list):

#1資訊輸出

for idx in

range(len(member_mean_list)):

member_mean_duration =member_mean_list[idx]

casual_mean_duration =casual_mean_list[idx]

print('

第{}個季度,會員平均騎行時長:分鐘,非會員平均騎行時長:分鐘

'.format(idx,member_mean_duration,casual_mean_duration))

#2.構造多維陣列 轉置transpose()

mean_duration_arr =np.array(member_mean_duration,casual_mean_duration).transpose()

np.s**etxt(

'./mean_duration.csv

',mean_duration_arr,delimiter='

,',header='member,casual',fmt='%.4f',comments=''

)

#3.結果視覺化

plt.figure()

plt.plot(member_mean_duration, color='

g',linestyle='

-',maker ='

o',lable ='

member')

plt.plot(casual_mean_duration, color='

g',linestyle='

--',maker ='

*',lable ='

casual')

plt.title(

'member_vs_casual')

plt.xticks(range(0,4),[1,2,3,4],rotation=45)

plt.tight_layout()

plt.legend()

plt.show()

#主函式

defmain():

#資料獲取

data_arr_list =collect_process_data()

#資料分析

member_mean_list = get_mean_duration_by_type(data_arr_list,'

member')

casual_mean_list = get_mean_duration_by_type(data_arr_list,'

casual')

#結果展示

s**e_show_result(member_mean_list,casual_mean_list)

if__name__ == '

__main__':

main()

YOJ 共享單車

description 現在簡化問題。將地圖設定成乙個由100公尺100公尺的畫素塊組成的二維平面區域。如果乙個方塊內有單車,則畫素塊顯示為字元 x 如果此方塊內是可以通行的路,則顯示為 再如果方塊是建築物,則顯示為 建築物不能通行。小明在地圖上的位置顯示為 o 可以朝,上 下 左 右 左上 左下 ...

共享單車c

冷月老師每天上班從蘇州街地鐵站出來 都要思考很久是騎 去公司還是直接走過去 如果騎 則開鎖需要等 40s,已知冷老師騎 速度 4m s,走路速度 1.5m s.寫乙個程式幫助冷月老師判斷騎車快還是走路快.輸入地鐵到公司的距離,單位為公尺.如果騎車快,輸出 bicycle 如果走路快,輸出 walk ...

共享單車的討論

共享單車的利弊 我的觀點 方便 方便 還是方便 停放 停放 還是要停放 亂不 亂不 還是有點亂 管理 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫...