0
確定,所以我需要輸入文件的格式如下車削列表或陣列的列表轉換成n×n個二進制矩陣
5 5 12
1 1
1 2
2 1
2 3
3 1
3 2
3 4
4 2
4 4
1 2
2 3
5 5
,然後把它變成在左手列表示顧客ID的矩陣的計算而右欄是項目ID。
我可以得到Python導入數據,但我努力操縱它,以我需要的方式。
和例子我怎麼需要的數據是:
Item 1 Item 2 Item 3
Customer1: 1 2 0
Customer2: 1 0 2
這裏是我用來導入數據的方法:
def DataImport(filename):
Data = []
with open(filename) as f:
for line in f:
Data.append([int(v) for v in line.split()])
return Data
(不完全)
def ImportData(filename):
if filename == "history.txt":
Option1 = np.loadtxt(filename, skiprows=1)
CustomerID = np.loadtxt(filename, skiprows=1, usecols=(0,))
ItemID = np.loadtxt(filename, skiprows=1, usecols=(1,))
print(CustomerID)
print(ItemID)
print(Option1)
Option11 = []
for i in Option1:
if i[i][0] == i[0]:
Option11.append(i[0][1])
print(Option11)
else:
Data = np.loadtxt(filename)
def ImportData(filename):
rawdata = {}
File = open(filename, "r")
for line in File:
rawdata[len(rawdata)+1] = line.rstrip("\n")
File.close()
print(rawdata)
def ImportData2(filename):
with open(filename, newline='') as file:
reader = csv.reader(file, delimiter=' ')
next(reader)
TRvalues = dict(reader)
print(TRvalues)
我認爲numpy方法以最簡單的方式呈現,但我不確定如何讓Python到itter以customerID作爲關鍵字,然後以前面提到的方式添加值。
我不確定我是否已經解釋得很好,但如果您需要更多說明,我可以回答問題。
你的例子的第一行有'5 5 12',其餘的只有兩個條目。一般來說,你是否想要'Item 1 Item 2 Item 3',因爲第一行有三個條目?然後剩餘的項目3會有'0'?您的示例輸入需要更清楚地鏈接到所需的輸出。這是不明顯的,你在找什麼。 – dawg
我*認爲*您正在尋找輸入行中不存在列的默認值? – dawg
第一行是不同的數據,對不起,我忘了提及,這是第一行之後的所有內容。 – Lakura225