чтение нескольких объектов s3 в массиве numpy и объединение - PullRequest
0 голосов
/ 09 октября 2019

У меня есть несколько объектов в корзине s3 (файлы деталей). Мне нужно прочитать их и объединить в один массив. Я использую код ниже

def read_and_concat(bucket, key_list):
    length = len(key_list)
    for index, key in enumerate(key_list):
        s3_client.download_file(bucket, key, 'test.out')
        target_data = genfromtxt('test.out', delimiter=',')
        data_shape = target_data.shape
        data[index] = np.array(data_shape)
        data[index] = target_data
    result = np.concatenate([data[i] for i in range(length)])
    return result

Это выдает ошибку NameError: name 'data' is not defined. Я предполагаю, что мне нужно определить data как двумерный массив, прежде чем использовать его в строке data[index] = np.array(data_shape). Но я не уверен, как.

Или есть еще что-то, чего мне не хватает?

Пожалуйста, предложите.

1 Ответ

1 голос
/ 09 октября 2019

I думаю , что data необходимо определить, прежде чем использовать его в этом случае. Присвоение по индексу переменной, которая не существует, выдает NameError. Я не уверен, что необходим дополнительный шаг создания массива, потому что genfromtext возвращает ndarray.

def read_and_concat(bucket, key_list):
    length = len(key_list)
    data = []
    for index, key in enumerate(key_list):
        s3_client.download_file(bucket, key, 'test.out')
        data.append(genfromtxt('test.out', delimiter=','))
    return np.concatenate(data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...