![](/img/trans.png)
[英]How add new samples to the same label using Naive Bayes on php-ml?
[英]Using samples() with php-ml
我正在使用 php-ml 並接收一個包含 6 列和數千行的 .csv 文件,我希望每個數組的每個第 5 個元素(列)都保存在 $samples 中。 我嘗試了以下方法,它為我提供了每個數組的第一個元素。
$dataset = new CsvDataset('myCsvFile.csv', 1);
$samples = [];
foreach ($dataset->getSamples() as $sample) {
$samples[] = $sample[0];
}
然而,這給了我每個數組的第一個元素,如果我將$sample[0] to $sample[4]
更改$sample[0] to $sample[4]
因為我認為這在語法上會起作用,我會在相關行上得到一個未定義的偏移量。 我是 PHP 新手,不明白為什么會發生這種情況。
如果代碼保留如上並打印出來,則如下所示:
Array
(
[0] => 1157
[1] => 1157
[2] => 1157
[3] => 1157
[4] => 1157
[5] => 1157
[6] => 1157
[7] => 1157
[8] => 1157
...等等。
你可以試試這個
$csv = array();
$csvNewArray = array();
$lines = file('myCsvFile.csv', FILE_IGNORE_NEW_LINES);
foreach ($lines as $key => $value)
{
$csv[$key] = str_getcsv($value);
if(isset($csv[$key][4])){
$csvNewArray[$key] = $csv[$key][4];
}
}
使用fgetcsv()
從文件中讀取,然后訪問這些數組的相應元素以獲取每行的第五項。
$fh = fopen("myCsvFile.csv", "r") or die("Can't open CSV file\n");
$csv = array();
$sample = array();
while ($row = fgetcsv($fh)) {
$csv[] = $row;
$sample[] = $row[4];
}
fclose($fh);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.