Numpy linspace() en php, así como elevar un array con pow()
Funciones linspace() o elevar arrays ya disponibles en PHP
He liberado una clase en PHP que puede realizar cálculos de potencias en arrays o generar un array ordenado entre dos números con un número de muestras en concreto. Esta última función es la función de numpy linspace().
Estas funciones se suelen utilizar en Python en el Machine Learning, pero en PHP escasean, así que.... me las he inventado y ahora ya existen 😁.
Un ejemplo muy claro de su uso sería en el siguiente código:
// NOTE: The graph library will be published soon. this example is only to see the use of Linspace() & pow()
// We assume that $ax in PHP is a graph_object, and create an ext_op_ml object in $m variable
// PYTHON PYPLOT
x = np.linspace(0, 2, 100)
ax.plot(x, x, label='linear')
# Plot some data on the axes.
ax.plot(x, x**2, label='quadratic')
# Plot more data on the axes...
ax.plot(x, x**3, label='cubic')
# ... and some more.
// PHP
$m = new ext_op_ml();
$x = $m->linspace( 0, 2, 100 );
$ax->plot( $x, $x, ['label'=>'linear'] );
$ax->plot( $x, $m->pow($x, 2), ['label'=>'quadratic'] );
$ax->plot( $x, $m->pow($x, 3), ['label'=>'cubic'] );
Como vemos, el código queda muy parecido, así que la intención es ir añadiendo las funciones que normalmente se utilitzan en Python e implementarlas en PHP. De esta manera, los ejemplos serán muy fáciles de traducir a medida que vaya publicando nuevas cases encaradas al Machine Learning, y es una manera muy fácil de aprender en PHP con ejemplos muy parecidos en Python.
Que por qué inventar una cosa que ya está inventada? No es inventar, es adaptar a mis necesidades, ya que suelo trabajar con PHP y una de las cosas muy útiles que tiene es poder utilizar estas mismas librerías en servidores públicos y en producción que suelen ser servidores web. En la mayoría de ocasiones, por seguridad, es imposible instalar los paquetes necesarios de python, y no te queda otra que trabajar direcamente en PHP, así que.... a continuar adaptando código se ha dicho.
En la versión primitiva ya podemos utilizar los siguientes métodos:
- linspace( $start, $end, $numsamples = null );
- pow( $values, $exp = 2 );
- str_len_ttf( $text, $font_path, $font_size, $angle = 0 );
- inch_2_pixels( $size_inch, $dpis = 72 );
- hex2rgb( $hex_color );
La librería la podéis descargar desde:
Comentarios