Ошибка слишком большого количества индексов в моем уже наборе микроданных - PullRequest
0 голосов
/ 11 ноября 2018

Это мой маленький тестовый файл CSV, потому что я пытаюсь изолировать ошибку.

Destination Port    Flow Duration   Total Fwd Packets   Labels
22  20  100 BENIGN
21  30  200 BENIGN
43  30  100 Bot
15  11  203 Bot

Поэтому, когда я запускаю следующий код для предварительной обработки данных,

import csv
# import itertools
import os
from os.path import join as os_join
import numpy as np


dataroot = r'D:\DDOS\testing_too_many_indices'

attacks = {'BENIGN': 0, 'Bot': 1}
# and many others

features = ['Destination Port', 'Flow Duration', 'Total Fwd Packets']

np.random.seed(1202)


def get_filenames(a_dir):
    return [name for name in os.listdir(a_dir)
            if os.path.isfile(os.path.join(a_dir, name))]


def read_csv(filename, sampling_rate=100):
    with open(filename) as csv_file:
        print('Reading {} ...'.format(filename))
        reader = csv.reader(csv_file)
        # header = next(reader)
        data = [row for row in reader]
        print('#{} rows read'.format(len(data)))
        N = len(data)
        sample_size = N*sampling_rate//100
        indices = np.random.randint(0, N, sample_size)
        sampled_data = [data[i] for i in indices]
    return sampled_data


def read_data(dataroot, sampling_rate=10, seed=0):
    np.random.seed(seed)
    filenames = get_filenames(dataroot)
    data = []
    for filename in filenames:
        data_part = read_csv(os_join(dataroot, filename), sampling_rate)
        data += data_part
    return data


data = read_data(dataroot, sampling_rate=10)

arr = np.array(data)
# X contains feature values and Y the output values.
X = arr[:, :-1].astype(np.float32)  # ERROR HERE.
Y_str = arr[:, -1]

Я получаю ошибку следующим образом: -

File "/some_path/temp.py", line 63, in <module>
    X = arr[:, :-1].astype(np.float32)

IndexError: too many indices for array

Что мне делать? Я разбил свои мозги на другие, возможно, дублированные ссылки, такие как эта , эта и т. Д. Также сделал приведенный выше фрагмент кода для тестирования отдельно, прочитайте о 2D нарезка и все же я не знаю. Вы можете мне помочь?

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