簡體   English   中英

Python錯誤 - “數組索引太多”

[英]Python error - “too many indices for array”

我有一個代碼,用於讀取一個文件並保存到矩陣。 但我想讀取並將幾個文件保存到矩陣中。 但是,當我嘗試擴展我的代碼以使用多個文件時,我得到以下錯誤消息“數組太多索引”,當我只讀取一個文件時我沒有得到

我試圖使用函數而不是for循環,並且還以不同的方式應用索引(如StackOverflow中的其他一些線程所示),但它沒有用。

這部分代碼不能正常工作:

r=r[1:lengthOfDataset,1:numberOfColumns]

我的代碼全部:

dataPath = ['ABB-2018-03-26-2019-03-26.csv',
    'ALFA-2018-03-26-2019-03-26.csv',
    'ALIV-SDB-2018-03-26-2019-03-26.csv',...]


lengthOfDataset=252
numberOfColumns=10
data=np.zeros([len(dataPath),lengthOfDataset-1,numberOfColumns-1])


for i in range(len(dataPath)):
    data[i]=readAndConvertFile(dataPath[i])


def readAndConvertFile(F):
    with open(F, 'r') as f:
        reader = csv.reader(f, delimiter=';')
        lists = list(reader)
        r = np.array(lists)
        r=r[1:lengthOfDataset,1:numberOfColumns]
        for j in range(lengthOfDataset-1):
                for k in range(numberOfColumns-1):
                    r[j,k]=num(r[j,k])
        return r


def num(s):
    try:
        s=s.replace(',','.')
        s=float(s)
        return s
    except ValueError:
        return 0

如果你從一個只包含一個元素的列表中創建一個numpy數組,你將獲得一個形狀為(,1)(只有一維)的數組,而如果列表中有更多元素,你將得到一個像(文件數量,1)(二維)。 我會建議在它創建后重塑numpy數組r

np.reshape(r,(-1,1))

這確保r始終具有兩個維度,而不指定行數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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