машинное обучение — чтение в .csv файле PHP-ML

Я использую php-ml и беру файл .csv с 6 столбцами и тысячами строк, я хочу, чтобы каждый 5-й элемент (столбец) каждого массива был сохранен в $ samples. Я попробовал следующее, что дает мне первый элемент каждого массива.

$dataset = new CsvDataset('myNewCsvFile.csv', 1);
$samples = [];

foreach ($dataset->getSamples() as $sample) {
$samples[] = $sample[0];
}

Я не понимаю, почему это не читает в моем .csv полностью, если я изменяю значение индекса sample [0] на любой другой индекс, я получаю следующую ошибку:

Notice: Undefined offset: 1 in C:\xampp\htdocs\test\index.php on line 19

Это говорит мне о том, что он читает только первый столбец в каждой строке, что подтверждается, если я распечатываю массив Samples, я получаю то, что ожидал, а именно:

    Array
(
[0] => 1157
[1] => 1157
[2] => 1157
[3] => 1157
[4] => 1157
[5] => 1157
[6] => 1157
[7] => 1157
[8] => 1157
[9] => 1157
[10] => 1157
[11] => 1157
[12] => 1157
[13] => 1157
[14] => 1157
[15] => 1157
[16] => 1157
[17] => 1157
[18] => 1157
[19] => 1157
[20] => 1157
[21] => 1157
[22] => 1157

И так на что правильно. Может кто-нибудь объяснить, почему это не читает в моем полном файле .csv?

1

Решение

Как справочный документ показывает,
Вы должны передать конструктору количество столбцов для чтения в качестве второго аргумента
и вы просите это только для одного столбца. В следующем фрагменте я поставил еще один номер
чтобы получить больше столбцов.

use Phpml\Dataset\CsvDataset;

// the third argument makes it ignore the heading row
$dataset = new CsvDataset('myNewCsvFile.csv',4,true);

foreach ($dataset->getSamples() as $sample) {
print_r($sample);
}

Выходы:

Array
(
[0] => 101
[1] => 201
[2] => 301
[3] => 401
)
Array
(
[0] => 102
[1] => 202
[2] => 302
[3] => 402
)

И myNewCsvFile.csv является;

┌─────┬─────┬─────┬─────┬─────┬─────┐
│  1  │  2  │  3  │  4  │  5  │  6  │
├─────┼─────┼─────┼─────┼─────┼─────┤
│ 101 │ 201 │ 301 │ 401 │ 501 │ 601 │
│ 102 │ 202 │ 302 │ 402 │ 502 │ 602 │
└─────┴─────┴─────┴─────┴─────┴─────┘
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]