phpnum 是 PHP 语言的一个科学计算扩展。支持多维数组运算,此外也为数组运算提供了大量数学函数库。灵感源自 NumPy & NumPHP。
下载phpnum最新版本,解压缩后,进入phpnum源码目录, 依次执行(其中PHP_BIN是PHP的bin目录)
$PHP_BIN/phpize
./configure --with-php-config=$PHP_BIN/php-config
make && make install
在php.ini中载入num.so,重启PHP。
说明: 创建Num对象
$num = new Num();
说明: 创建数组对象
array: Array
ndarray: Object
$num = new Num();
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
说明: 输出数组对象
$num = new Num();
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
echo $ndarray;
/* output:
array([
[1,2,3],
[2,3,4]
])
*/
说明: 获取数组对象的原始数据
None
data: Array
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$ndarray->getData(); // returns array([1.0, 2, 3], [2, 3, 4])
说明: 获取数组对象的各维度大小
None
shape: Array
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$ndarray->getShape(); // returns array(2, 3)
说明: 获取数组对象的维度
None
ndim: LONG
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$ndarray->getNdim(); // returns 2
说明: 获取数组对象的元素个数
None
size: LONG
$ndarray = $num->array([[1.0, 2, 3], [2, 3, 4]]);
$ndarray->getSize(); // returns 6
说明: 获取数组对象的最小元素
ndarray: Object
amin: Double
$ndarray = $num->array([[3.2, 1.5, 1], [2.5, 4, 2]]);
$num->min($ndarray); // returns 1
说明: 获取数组对象的最大元素
ndarray: Object
amax: Double
$ndarray = $num->array([[3.2, 1.5, 1], [2.5, 4, 2]]);
$num->amax($ndarray); // returns 4
说明: 加上数组对象
ndarray: Object
ndarray: Object
$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);
/* output:
array([
[4.2,3.5,4],
[4.5,7,6]
])
*/
说明: 减去数组对象
ndarray: Object
ndarray: Object
$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);
/* output:
array([
[-2.2,0.5,2],
[-0.5,-1,2]
])
*/
说明: 乘以数组对象
ndarray: Object
ndarray: Object
$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);
/* output:
array([
[3.2,3,3],
[5,12,8]
])
*/
说明: 除以数组对象
ndarray: Object
ndarray: Object
$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);
/* output:
array([
[0.3125,1.3333333333333,3],
[0.8,0.75,2]
])
*/
说明: 遍历数组计算次幂
base: Object
exponent: Object or Double
array: Array
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->power($ndarray, 3);
// returns array([[0.125, 1.0], [0.0, 8.0]])
说明: 遍历数组计算平方
ndarray: Object
array: Array
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->square($ndarray);
// returns array([[0.5, 1.0], [0.0, 4.0]])
说明: 遍历数组计算平方根
ndarray: Object
array: Array
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->sqrt($ndarray);
// returns array([[0.70710678118654757, 1.0], [0.0, 1.4142135623730951]])
说明: 遍历数组计算自然常数e的次幂
ndarray: Object
array: Array
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->exp($ndarray);
// returns array([[1.6487212707001282, 2.7182818284590451], [1.0, 7.3890560989306504]])
说明: 遍历数组计算自然对数
ndarray: Object
array: Array
$ndarray = $num->array([[0.5, 1], [10, 2]]);
$num->log($ndarray);
// returns array([[-0.69314718055994529, 0.0], [2.3025850929940459, 0.69314718055994529]])
说明: 遍历数组计算以10为底的对数值
ndarray: Object
array: Array
$ndarray = $num->array([[1e-1, 1], [10, 100]]);
$num->log10($ndarray);
// returns array([[-1.0, 0.0], [1.0, 2.0]])
说明: 遍历数组计算正弦值
ndarray: Object
array: Array
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->sin($ndarray);
// returns array([[0.47942553860420301, 0.8414709848078965], [0.0, 0.90929742682568171]])
说明: 遍历数组计算余弦值
ndarray: Object
array: Array
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->cos($ndarray);
// returns array([[0.87758256189037276, 0.54030230586813977], [1.0, -0.41614683654714241]])
说明: 遍历数组计算正切值
ndarray: Object
array: Array
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->tan($ndarray);
// returns array([[0.54630248984379048, 1.5574077246549023], [0.0, -2.1850398632615189]])
说明: 遍历数组计算向上取整
ndarray: Object
array: Array
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->ceil($ndarray);
// returns array([[1.0, 1.0], [0.0, 2.0]])
说明: 遍历数组计算向下取整
ndarray: Object
array: Array
$ndarray = $num->array([[0.5, 1], [0, 2]]);
$num->floor($ndarray);
// returns array([[0.0, 1.0], [0.0, 2.0]])
说明: 遍历数组计算绝对值
ndarray: Object
array: Array
$ndarray = $num->array([[0.5, -1], [0, -2]]);
$num->fabs($ndarray);
// returns array([[0.0, 1.0], [0.0, 2.0]])
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型