Skip to content

Commit

Permalink
feat: Implement PythonDependencyAdapter for Python
Browse files Browse the repository at this point in the history
  • Loading branch information
sweep-ai[bot] committed Mar 13, 2024
1 parent 87b5cd2 commit 56fda3c
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions src/Snps/PythonDependencyAdapter.php
@@ -0,0 +1,47 @@
<?php

namespace Dna\Snps;

use MathPHP\LinearAlgebra\Matrix;
use MathPHP\Statistics\Descriptive;
use League\Csv\Reader;
use League\Csv\Writer;

class PythonDependencyAdapter
{
public function readCsv(string $filePath): array
{
$csv = Reader::createFromPath($filePath, 'r');
$csv->setHeaderOffset(0);
return $csv->getRecords();
}

public function writeCsv(string $filePath, array $data): void
{
$csv = Writer::createFromPath($filePath, 'w+');
$csv->insertOne(array_keys(reset($data)));
$csv->insertAll($data);
}

public function matrixMultiplication(array $matrix1, array $matrix2): Matrix
{
$matrixA = new Matrix($matrix1);
$matrixB = new Matrix($matrix2);
return $matrixA->multiply($matrixB);
}

public function calculateMean(array $data): float
{
return Descriptive::mean($data);
}

public function filterData(array $data, callable $callback): array
{
return array_filter($data, $callback);
}

public function mergeData(array $data1, array $data2): array
{
return array_merge($data1, $data2);
}
}

0 comments on commit 56fda3c

Please sign in to comment.