簡體   English   中英

Numpy TypeError 必須是整數,而不是元組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM