[英]Numpy TypeError must be integer, not tuple
我想使用邏輯回歸創建一個模型。 出於這個原因,我首先從文件中取出數據並將每一行與這個 txt 分開,然后根據“,”將其拆分,然后將它們放入我的數組(數據)中。 之后我將該數組轉換為 numPy 數組並隨機洗牌。 但是當我將數組分成兩個不同的部分進行測試和訓練時。
發生了這個錯誤:
Traceback (most recent call last):
File ".\logisticRegression.py", line 32, in <module>
training_data = matrix_data[167:,:]
TypeError: list indices must be integers or slices, not tuple
這是我寫的代碼:
import numpy as np
import matplotlib.pyplot as plt
def load_data(path):
datum= []
with open(path) as fp:
line = fp.readline()
while line:
arr_line= line.split(",")
datum.append(arr_line)
line=fp.readline()
return datum
#Sigmoid function
def sigmoid(x):
return 1/(1+np.exp(-x))
#Loss function
def square_loss(y_pred, target):
return np.mean(pow(((y_pred - target),2)))
if __name__ == "__main__":
# load the data from the file
matrix_data = load_data("all_data.txt")
np.array(matrix_data)
np.random.shuffle(matrix_data)
training_data = matrix_data[167:,:] #These all lines gives error
test_data = matrix_data[41:,:] #These all lines gives error
X_tr, y_tr = training_data[:, :-1], training_data[:, -1] #These all lines gives error
X_te, y_te = test_data[:, :-1], test_data[:, -1] #These all lines gives error
注意:我搜索了這個錯誤,我發現問題是我的數組中缺少逗號,但是當我打印數組時,它的每個索引都有逗號。
您必須將 np.array 的結果分配給一個變量,它不會更改參數 matrix_data:
matrix_data = np.array(matrix_data)
您的代碼失敗,因為您仍然有一個列表而不是一個 numpy 數據結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.