學習目標:
掌握使用布林型陣列進行資料過濾
掌握如何構造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的基本語法知識。全新的介面設計,將會帶來全新的寫...