Чтение чисел из файла в многомерный массив - PullRequest
1 голос
/ 25 февраля 2020

У меня есть целые числа в текстовом файле, которые нужно назначить массиву C [5] [100]. Мои данные в этом формате:

17 40 35 24 50 15 31 38 48 18 16 44 
41 10 26 50 48 20 24 12 48 24 34 39 
...............

Я пытаюсь код ниже, но я получаю следующую ошибку:

ValueError: невозможно скопировать последовательность с размером 1005 на ось массива с размерностью 100

text_file = open("c051001.txt", "r")

C=np.zeros((5,100))

for i in range(agent):
    C[i,]=map(int, (value for value in text_file.read().split()))

Число целых чисел в файле больше 500, но я хочу присвоить оставшуюся часть чисел другому массиву.

1 Ответ

0 голосов
/ 10 марта 2020

Вам нужно разделить данные на соответствующие куски. Простой способ сделать это может быть:

agent = 5
resource = 1
sz = 100

C = np.zeros((agent, sz))

idx = 0
chunk = sz
for i in range(agent):
    C[i, ] = list(map(int, data[idx:idx + chunk]))
    idx += chunk

# Assign the following 500 integers into another array of A[5,100,1]
A = np.zeros((agent, sz, resource))

for k in range(resource):
    for i in range(agent):
        A[i, :, k] = list(map(int, data[idx:idx + chunk]))
        idx += chunk

trailing_data = data[idx:]

...