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