问题标签 [narray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
148 浏览

ruby - 在 Ruby 的 NArray 中求和设置位的最快方法是什么?

我用 NArray 实现了一个位数组,但是我对 bits_on 方法的速度不是很满意。目前我有:

byte_array是一个 NArray.byte() 类型,并且@count_array是这样构建的:

想法?

干杯,

马丁

0 投票
1 回答
69 浏览

ruby - 如何在 Ruby 的 NArray 中定位非空值的区间?

我有兴趣将 NArray 中的所有非空间隔定位为 [begin, end] 类型的元组。因此,如果我们有一个给定大小的 NArray 并且索引位置 100 ... 200、300 ... 400 等处的所有值都不为零,我想获得一个像这样的数组[[100,200], [300,400], etc]:我想知道 NArray 接口中是否有一些东西 - 不幸的是,它的文档不足 - 可以帮助我?速度至关重要。

干杯,

马丁

0 投票
3 回答
2070 浏览

ruby - 与 Array 相比,使用 Ruby NArray 有哪些优势?

我刚刚遇到了 Ruby 的 NArray 库——问这个问题时请原谅我的无知:)

与标准 Ruby Array 实现相比,使用 NArray 库有哪些优势?

我已经看到 NArray 面向数值计算,但是查看 API,看起来只有 Array 上的一些扩展面向数值 - 没有什么是你不能用 Array 做的。

  1. 为什么不直接使用数组?
  2. 有巨大的速度优势吗?
  3. 有很大的内存优势吗?
  4. 与使用常规 Ruby Array 类相比,还有什么其他优势吗?

谷歌并没有真正想出对这个问题的有用解释。

我找到的参考资料:

http://rubydoc.info/gems/narray-ruby19/0.5.9.7/NArray

http://narray.rubyforge.org/index.html.en

http://raa.ruby-lang.org/project/narray/

0 投票
2 回答
137 浏览

ruby - 在Ruby中替换字节类型NArray中的值

我正在寻找一种方法,将字节数组中所有出现的“A”替换为 1,将“T”替换为 2,将“C”替换为 8,将“G”替换为 16。如何才能做到这一点?

0 投票
1 回答
72 浏览

ruby - 使用 Ruby NArray 选择低于阈值并锚定在左侧或右侧的值

使用 NArray,是否有一些漂亮的方法可以创建值低于例如 5 的数组掩码,但仅适用于锚定左侧或右侧的值的运行,例如这个一维数组:

会导致:

这个二维数组:

会导致:

0 投票
1 回答
141 浏览

ruby - How to expand/reduce a two-dimensional Ruby NArray?

If I have a Narray with the shape 100, 10000 and want to expand it to say 100, 20000 (basically add rows) what is the proper way to achieve this? To expand massive Narrays I would like to avoid using a temporary Narray for memory reasons.

0 投票
4 回答
297 浏览

ruby - 如何在二维 Ruby NArray 中添加一行?

我想在二维 NArray 中添加一行。NArray 0-7 Tutorial中描述的方法非常复杂——我想知道是否有更简单的方法。

因此,如果我有两个 NArray:

我想添加 n1 和 n2 得到 n3:

如何做到这一点?

0 投票
1 回答
491 浏览

ruby - 将向量转换为整数

知道向量的多维数组的形状,我们如何将其转换为一维的新向量(通过展平多维数组)?

例如考虑以下数组:

...向量A的起点和B终点在哪里。可以写:

从现在开始,假设我们 flatten arr,我们如何翻译向量呢?换句话说,如何将这个 3 维向量转换为新的 1 维向量?

这是一种特殊情况,因为向量的原点也是数组的第一个坐标。所以我们可以找到结果:

这是另一个二维数组的例子:

我们可以这样写:

而且,再一次,

但这里有一个更复杂的例子,带有一个负向量:

下面的方法怎么写?

一维数组的示例(简单):

有没有一种简单的方法可以从任意维度的数组中扁平化一个向量?谢谢。

0 投票
1 回答
430 浏览

ruby - Ruby 的 narray gem 安装错误

我正在尝试为 Ruby 安装 NArray gem 来执行一些数学函数。我在 OSX Mountain Lion 上运行 Ruby 1.8.7 版

当我尝试安装 NArray gem 时,会产生以下错误:

我用谷歌搜索过,没有任何运气。

0 投票
2 回答
160 浏览

ruby - Ruby NArray 优化下采样和条件更改

我正在为 ruby​​-fann 创建输入,出于性能原因在 narray 中进行尽可能多的操作。通常我正在处理 2D 200x200 浮点数组,并且需要重复处理 1000 次。

仅使用 NArray,我可以获得可接受的性能。但是,据我所知,我已经完成了一些我想做的操作,但我无法让 NArray 批量执行操作。这意味着我最终使用 Ruby 的循环控件来处理单个 NArray 条目。这对我的代码性能有直接和有害的影响,我想知道我有哪些解决方法或方法。我有能力但不希望分叉 NArray 并为我的工作添加一些功能。这不适合我,因为我需要的功能不够通用,无法进入该库。

我可能会考虑编写一个以某种方式直接使用 NArray 的本机扩展 - 欢迎提供有关如何做到这一点的指针,我不确定如何从另一个中引用一个本机扩展的 gem。

如果我能以不同的方式构建代码,以使 Ruby 部分更快,或利用任何 NArray 功能或相关库,我也将不胜感激任何见解或反馈。

我的两段慢代码非常相似,因此发布了一个问题。

1) 将浮点矩阵限制在一个范围内

我目前在做什么(简化):

2)根据平均值将大矩阵下采样到较小的矩阵(想想“图像重新调整大小”)

我目前在做什么(简化):

mean在第二个例子中使用了 NArray 的方法,它比第一个例子的问题要小,我最终为每个项目执行了一个小的 Ruby 循环 40000 次(因此整个数据集超过 2 亿次!)


在 masa16 回复之后,这是一个非常快速的 irb 基准测试,显示了速度的差异:

因此,对于那个快 10 倍的小代码段,并且我通常运行的不是 250 次,而是 50,000 次,这为我节省了 30 分钟到 1 小时的运行时间,而这在之前需要 3 到 4 小时。