Расширение PHP для научных вычислений: phpnum
phpnum — это расширение PHP для научных вычислений, вдохновлённое NumPy и NumPHP.
Смотрите документацию на китайском языке
https://github.com/phpnum/phpnum/blob/master/README.zh.md
Содержание
Установка и настройка
Здесь вы найдёте всё необходимое для установки phpnum в вашей системе.
phpize
./configure
make && make install
Команда make install копирует файл num.so в подходящее место, но вам всё равно нужно включить модуль в конфигурационном файле PHP. Для этого либо отредактируйте файл php.ini, либо добавьте файл num.ini в каталог /path/to/php.d со следующим содержимым: extension=num.so.
Классы и методы
Описание: Создаёт объект Num.
Пример
$num = new Num();
Описание: Создаёт N-мерный массив (ndarray) объект.
Параметры
array: массив
Возвращаемое значение
ndarray: объект
Пример
$num = new Num();
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
Описание: Печатает объект ndarray.
Пример
$num = new Num();
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
echo $ndarray;
/* вывод:
array([
[1,2,3],
[2,3,4]
])
*/
Характеристики
Описание: Данные массива ndarray.
Параметры
Нет
Возвращаемое значение
data: массив
Пример
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$ndarray->getData(); // возвращает array([1.0, 2, 3], [2, 3, 4])
Описание: Форма размерностей массива ndarray.
Параметры
Нет
Возвращаемое значение
shape: массив
Пример
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$ndarray->getShape(); // возвращает array(2, 3)
Описание: Количество размерностей массива ndarray.
Параметры
Нет
Возвращаемое значение
ndim: LONG
Пример
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$ndarray->getNdim(); // возвращает 2
Описание: Количество элементов в массиве ndarray.
Параметры
Нет
Возвращаемое значение
size: LONG
Пример
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$ndarray->getSize(); // возвращает 6
Статистика
Описание: Возвращает минимум массива.
Параметры
ndarray: Объект
Возвращаемое значение
amin: DOUBLE
Пример
$ndarray = $num->array([[3.2, 1.5, 1], [2.5, 4, 2]]);
$num->min($ndarray); // возвращает 1
Описание: Возвращает максимум массива.
Параметры
ndarray: Объект
Возвращаемое значение
amax: DOUBLE
Пример
$ndarray = $num->array([[3.2, 1.5, 1], [2.5, 4, 2]]);
$num->amax($ndarray); // возвращает 4
Арифметические операции
Параметры: ndarray: объект
Возвращаемое значение: ndarray: объект
Пример:
$a = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$b = $num->array([[3.2, 1.5, 1], [2.5, 4, 2]]);
echo $a->add($b);
/* вывод:
массив([
[4.2,3.5,4],
[4.5,7,6]
])
*/
Описание: Вычесть массив из другого массива
Параметры: ndarray: объект
Возвращаемое значение: ndarray: объект
Пример:
$a = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$b = $num->array([[3.2, 1.5, 1], [2.5, 4, 2]]);
echo $a->sub($b);
/* вывод:
массив([
[-2.2,0.5,2],
[-0.5,-1,2]
])
*/
Описание: Умножить массив на другой массив
Параметры: ndarray: объект
Возвращаемое значение: ndarray: объект
Пример:
$a = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$b = $num->array([[3.2, 1.5, 1], [2.5, 4, 2]]);
echo $a->mult($b);
/* вывод:
массив([
[3.2,3,3],
[5,12,8]
])
*/
Описание: Разделить массив на другой массив
Параметры: ndarray: объект
Возвращаемое значение: ndarray: объект
Пример:
$a = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$b = $num->array([[3.2, 1.5, 1], [2.5, 4, 2]]);
echo $a->div($b);
/* вывод:
массив([
[0.3125,1.3333333333333,3],
[0.8,0.75,2]
])
Описание: Первый элемент массива возводится в степень второго элемента массива поэлементно
Параметры: base: объект exponent: объект или число с плавающей точкой
Возвращаемое значение: array: массив
Пример:
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->power($ndarray, 3);
// возвращает массив([[0.125, 1.0], [0.0, 8.0]])
Описание: Поэлементное возведение в квадрат элементов массива
Параметры: ndarray: объект
Возвращаемое значение: array: массив
Пример:
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->square($ndarray);
// возвращает массив([[0.5, 1.0], [0.0, 4.0]])
Описание: вычисление квадратного корня для каждого элемента массива
Параметры: ndarray: объект
Возвращаемое значение: array: массив
Пример:
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->sqrt($ndarray);
// возвращает массив([[0.70710678118654757, 1.0], [0.0, 1.4142135623730951]])
Описание: экспоненциальная функция для каждого элемента массива
Параметры: ndarray: объект
Возвращаемое значение: array: массив
Пример:
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->exp($ndarray);
// возвращает массив([[1.6487212707001282, 2.7182818284590451], [1.0, 7.3890560989306504]])
Описание: натуральный логарифм для каждого элемента массива
Параметры: ndarray: объект
Возвращаемое значение: array: массив
Пример:
$ndarray = $num->array([[0.5, 1], [10, 2]]);
$num->log($ndarray);
// возвращает массив([[-0.69314718055994529, 0.0], [2.3025850929940459, 0.69314718055994529]])
Описание: логарифм по основанию 10 для каждого элемента массива
Параметры: ndarray: объект
Возвращаемое значение: array: массив
Пример:
$ndarray = $num->array([[1e-1, 1], [10, 100]]); ### log10
**Описание**: логарифм по основанию 10, поэлементно.
##### *Параметры*
ndarray: *объект*
##### *Возвращаемое значение*
array: *массив*
##### Пример
$ndarray = $num->array([[-1.0, 0.0], [1.0, 2.0]]); $num->log10($ndarray); // возвращает array([[1.0, 0.0], [-0.1, -0.3]])
### sin
**Описание**: тригонометрический синус, поэлементно
##### *Параметры*
ndarray: *Объект*
##### *Возвращаемое значение*
array: *Массив*
##### Пример
$ndarray = $num->array([[0.5, 1], [0, 2]]); $num->sin($ndarray); // возвращает массив ([[0.47942553860420301, 0.8414709848078965], [0.0, 0.90929742682568171]])
### cos
**Описание**: косинус поэлементно
##### *Параметры*
ndarray: *Объект*
##### *Возвращаемое значение*
array: *Массив*
##### Пример
$ndarray = $num->array([[0.5, 1], [0, 2]]); $num->cos($ndarray); // возвращает массив [[0.87758256189037276, 0.54030230586813977], [1.0, -0.41614683654714241]]
### tan
**Описание**: вычисление тангенса поэлементно
##### *Параметры*
ndarray: *Объект*
##### *Возвращаемое значение*
array: *Массив*
##### Пример
$ndarray = $num->array([[0.5, 1], [0, 2]]); $num->tan($ndarray); // возвращает массив [[0.54630248984379048, 1.5574077246549023], [0.0, -2.1850398632615189]]
### ceil
**Описание**: возвращает наименьшее целое число, большее или равное входному значению, поэлементно
##### *Параметры*
ndarray: *Объект*
##### *Возвращаемое значение*
array: *Массив*
##### Пример
$ndarray = $num->array([[0.5, 1], [0, 2]]); $num->ceil($ndarray); // возвращает массив [[1.0, 1.0], [0.0, 2.0]]
### floor
**Описание**: возвращает наибольшее целое число, меньшее или равное входному значению, поэлементно
##### *Параметры*
ndarray: *Объект*
##### *Возвращаемое значение*
array: *Массив*
##### Пример
$ndarray = $num->array([[0.5, 1], [0, 2]]); $num->floor($ndarray); // возвращает массив [[0.0, 1.0], [0.0, 2.0]]
### fabs
**Описание**: вычисляет абсолютное значение каждого элемента массива
##### *Параметры*
ndarray: *Объект*
##### *Возвращаемое значение*
array: *Массив*
##### Пример
$ndarray = $num->array([[0.5, 1], [0, -2]]); $num->fabs($ndarray); // возвращает массив [[0.0, 1.0], [0.0, 2.0]]
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )