CSV-файл в список 2d, а затем разделить на список списков 2D - PullRequest
0 голосов
/ 14 января 2020

Я прочитал CSV-файл в 2-й список:

aData = loadtxt(sPath, delimiter=',')

, который я мог бы напрямую разбить на два 2-го списка:

X = aData[:,10:]    # neural net output
Y = aData[:,2:10]   # neural net input

Но перед этим я хочу распространить aData на 6 разных 2d-списков

aDataW = [  [[]], [[]], [[]], [[]], [[]], [[]]  ]  # no idea if this is correct :-(

и затем что-то вроде

for i in range(len(aData)):
    iW = 4  # my logic..
    aDataW[iW].append(aData[i])

Но когда я получаю ошибку

aDataN = aDataW[4]
X = aDataM[:,10:]
TypeError: list indices must be integers, not tuple

1 Ответ

0 голосов
/ 14 января 2020

Мне нужно было преобразовать список списков обратно в двумерный массив с np.asarray() Рабочий пример:

import numpy as np

hFile = open("test.csv", "w")
hFile.write('1,1,3,4\n1,0,1,2\n0,1,1,7')
hFile.close()

aData = np.loadtxt('test.csv', delimiter=',')
print '\naData:'
print aData

aaData = [  [], [], []  ]    # 'split' aData onto 3 2d-arrays
print '\naaData:'
print aaData

for i in range(len(aData)):
    aPred = aData[i,0:2]
    iW = int(aPred[0]+aPred[0])
    aaData[iW].append(aData[i])

for i in range(len(aaData)):
    aaData[i] = np.asarray(aaData[i])

print '\naaData[2]:'
print aaData[2]

X = aaData[2][:,2:]     # neural net input
Y = aaData[2][:,0:2]    # neural net output

print '\nX:'
print X

Вывод:

aData:
[[1. 1. 3. 4.]
 [1. 0. 1. 2.]
 [0. 1. 1. 7.]]

aaData:
[[], [], []]

aaData[2]:
[[1. 1. 3. 4.]
 [1. 0. 1. 2.]]

X:
[[3. 4.]
 [1. 2.]]

Глупый Python : 'Необычные операторы для сложных данных являются доказательством того, что вы совсем не поняли OOP и все еще живете в 20-м веке.' (Робо Дурден)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...