读入.csv文件PHP-ML

时间:2017-04-29 11:16:50

标签: php machine-learning

我正在使用php-ml并且使用包含6列和数千行的.csv文件,我希望每个数组的每个第5个元素(列)都保存在$ samples中。我尝试了以下内容,它给出了每个数组的第一个元素。

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

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

我不明白为什么我的.csv没有完全读取,如果我将sample [0]的indext更改为任何其他索引,我会收到以下错误:

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

这告诉我,它只读取每行中的第一列,这证明如果我打印出数组样本我得到的结果如下:

    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 个答案:

答案 0 :(得分:0)

作为https://registry.npmjs.org/, 您应该将构造函数传递给多个列以作为第二个参数读取 而你只是要求一列。在下面的片段中我添加了另一个数字 获得更多专栏。

tensorflow.python._pywrap_tensorflow_internal.pyd

输出:

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