javascript - numjs 相当于 javascript 中的 numpy 吗?它的工作依赖是什么?
问题描述
我正在编写相当于python代码的js来对像numpy.std(rgb_channel)这样的图像执行一些操作。图像的加载和获取其数据由 opencv.js ( https://docs.opencv.org/3.4/d0/d84/tutorial_js_usage.html )完成
目前,我坚持编写这段代码:
numpy.std(image, axis=2)
计算图像 rgb 通道的标准偏差。
我的问题是:为了用 javascript 编写这段代码,我应该使用 numjs 节点模块吗?我也得到了 numjs 的源代码(https://github.com/nicolaspanel/numjs)。这是 numjs 中的 std 函数:
NdArray.prototype.std = function (options) {
options = _.defaults(options, { 'ddof': 0 });
var squares = this.clone();
ops.powseq(squares.selection, 2);
var mean = this.mean();
var shapeSize = _.shapeSize(this.shape);
var variance = ops.sum(squares.selection) / (shapeSize - options.ddof) - mean * mean * shapeSize / (shapeSize - options.ddof);
return variance > 0 ? Math.sqrt(Math.abs(variance)) : 0;
};
另一个问题是:安装 numjs 会引发一些错误,例如:gyp ERR!堆栈错误和与 MSBuild.exe 相关的错误,也找不到 python。如果numjs是纯js代码,为什么要安装这些包。顺便说一句,我安装了python,MSBuild.exe 2017(根据https://www.npmjs.com/package/node-gyp),仍然得到一堆错误,如:尖锐节点模块(npm ERR! Failed at the sharp@0.20.8 install script.
)和
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual
Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1
解决方案
numjs
' 依赖项在此处列出,https://www.npmjs.com/package/numjs。它们中的大多数是纯 JavaScript,但sharp
使用了一些本机代码(因此您会看到 gyp 编译错误),并用于numjs
.
如果不需要这个numjs
功能,可以考虑我发布的https://www.npmjs.com/package/@d4c/numjs。它删除了可能导致安装错误的图像处理功能,并添加了一些 TypeScript 输入。
为了回答您最初的问题,它是NumPy
JavaScript 的一个更轻量级的版本,并且没有提供一些NumPy
功能。
推荐阅读
- java - 处理 ByteArrayInputStream 中的大文件 (>2GB)
- c# - 如何从列表中为对象分配值?统一 3D C#
- node.js - 生成的路由无法访问 crbug/1173575,非 JS 模块文件已弃用 AdonisJS
- javascript - 获取 Google 跟踪代码管理器简单表字段值并正确格式化多个值以添加到 API 调用的末尾
- php - PHP Laravel - 如何将 Spatie Async 用于并发函数
- bash - 如何在bash中将动态脚本更改为静态脚本?
- c++ - 按下输入键且没有用户输入时捕获异常
- php - Laravel 8 - 在现有布局中包含刀片布局
- javascript - 未捕获的错误:引发了跨域错误。React 无法访问 React Js 开发中的实际错误对象
- php - 如果购物车中的产品类别需要在结帐时注册 Woocommerce