Python基礎筆記(2)

2021-09-20 21:11:31 字數 2661 閱讀 2048

import numpy as np

import csv

# 引入使用的檔案

def get_alldata(filename):

# 讀取資料檔案,獲取列的標識,並將其與實驗需要的標識進行比對,

# 從而將資料檔案中所需要使用的列的資料提取出來,為之後的處理做鋪墊。

with open(filename, 'r') as csv_file:

col_name_all = csv_file.readline()[:-1]

colname_str = "clothing id,recommended ind,positive feedback count,class name"

col_name_all = col_name_all.split(",")

colname_lst = colname_str.split(",")

colindex_lst =

for i in col_name_all:

if i in colname_lst:

dataset =

dataset1 = csv.reader(csv_file)

for row in dataset1:

adata = list(row[i] for i in colindex_lst)

print(dataset)

return np.array(dataset)

def get_id_count_arr(dataset):

# 通過將每行資料通過鍵值對儲存在字典中,

# 可以比列表的count函式更快的獲取得到想要的資料,

# 也就是出現400次以上的資料。

mdict = {}

id_count_list =

for row in dataset:

if row[0] in mdict:

mdict[row[0]] = mdict[row[0]] + 1

else:

mdict[row[0]] = 0

for k in mdict:

if mdict[k] >= 400:

return np.array(id_count_list)

def cal_recom_num(dataset, id_lst):

# 通過兩個臨時變數記載疊加獲取的資料值,

# 當資料統計完成後,

# 計算的結果也就可以直接得到

id_recom_ratio_lst =

for i in range(len(id_lst)):

mnum = 0

mrnum = 0

for j in range(dataset.shape[0]):

if id_lst[i] == dataset[j][0]:

if dataset[j][1] == '1':

mrnum += 1

mnum += 1

return id_recom_ratio_lst

def cal_pos_num(dataset, id_lst):

# 通之前的方法,資料統計完成後,

# 就可得出結果,

# 並使用了臨時變數來記錄資料。

id_pos_sum_lst = # 每個clothing id進行正反饋次數加和的列表

id_name_lst = # 每個clothing id的型別名稱

strdata = ''

for i in range(len(id_lst)):

sum = 0 # 正反饋次數

for j in range(dataset.shape[0]):

if id_lst[i] == dataset[j][0]:

sum += int(dataset[j][2])

strdata = dataset[j][3]

return id_pos_sum_lst, id_name_lst

if __name__ == "__main__":

# 合理呼叫之前的方法,獲取資料,處理資料,顯示結果

filename = "z:\\womens_clothing_e-commerce_reviews.csv"

dataset = get_alldata(filename)

print("資料集dataset的維度是: {}".format(dataset.shape))

id_count_lst = get_id_count_arr(dataset)

recom_ratio_lst = cal_recom_num(dataset, id_count_lst)

id_pos_sum_lst, id_name_lst = cal_pos_num(dataset, id_count_lst)

id_data_arrs = np.array((id_count_lst, id_name_lst, recom_ratio_lst, id_pos_sum_lst)).t

for id_data in id_data_arrs:

print("clothing id為 {} ,服裝型別為 {},被推薦的佔比為: {},正反饋的總計數為: {}"

.format(id_data[0], id_data[1], id_data[2], id_data[3]))

python基礎筆記(2)

數字求和 num1 int input 輸入第乙個數字 此處必須定義變數型別 num2 int input 輸入第二個數字 sum int num1 int num2 print sum 輸出結果 輸入第乙個數字 1 輸入第二個數字 1 2process finished with exit cod...

Python基礎筆記2

1.使用方法啊sort 對列表永久排序 輸出 3.倒著列印 1.遍歷整個列表 2.for迴圈執行更多的操作 輸入 輸出 4.忘記縮排額外的 行 例如輸入 第二個呼叫函式print 原本需要縮排,但python發現for語句後面有一行 是縮排的,因此沒有報告錯誤。輸出 最總結果是,對於每個列表中的每位...

Python筆記(2) Python基礎

經常可以看到 python 原始碼檔案中第一行經常出現下面這行 usr bin python是用來說明指令碼語言是 python 的,要用 usr bin下面的程式 python 這個直譯器,來解釋 python 指令碼,來執行 python 指令碼的 即指定用什麼直譯器執行指令碼以及直譯器所在的位...