问题标签 [pdl]
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.
multithreading - 如何使用线程来替换 perl/pdl 中的循环子例程
我有一个非常好的 perl 子例程,作为 perl 模块的一部分编写。在不涉及太多细节的情况下,它将一个字符串和一个简短列表作为参数(通常取自终端)并输出一个值(现在,总是一个浮点数,但可能并非总是如此。)
现在,我的论点的列表部分采用两个值,例如 (val1,val2)。我使用 for 循环将子例程的输出保存为 val1 和 val2 的数百个不同值。每次迭代几乎需要一秒钟才能完成——因此完成整个过程需要几个小时。
我最近读到了一个神秘的(对我而言)名为“线程”的计算工具,它显然可以用极快的执行时间代替 for 循环。我一直无法理解这些是什么和做什么,但我想它们与并行计算有关(我希望我的模块尽可能针对并行处理器进行优化。)
如果我将要传递给 val1 的所有值保存为一个列表,比如 @val1 和 val2 相同,我如何使用这些“线程”为 val1 和 val2 的元素的每个组合执行我的子例程?此外,了解如何将此过程推广到也采用 val3、val4 等的子例程会很有帮助。
perl - 如何在通过引用传递的子例程中使用 PDL rcols?
具体来说,我想将 rcols 与 PERLCOLS 选项一起使用。
这是我想要做的:
如果我使用\@array
,我可以这样做,但为了向后兼容,我不想这样做。这是我使用数组引用引用的方法:
但是,我不知道如何制作一个以数组 ref 作为参数的子例程,而无需说类似@$aref = @{$read[-1]}
的内容,因为它会单独复制每个元素。
PS:阅读PDL::IO::Misc
文档,似乎 perl 数组应该是,$read[0]
但事实并非如此。
PERLCOLS - 一个列号数组,将被读入 perl 数组而不是 piddles。任何未在要读取的显式列列表中指定的列都将在显式列之后返回。(默认 B)。
我正在使用 PDL v2.4.4_05 和为 x86_64-linux-thread-multi 构建的 Perl v5.10.0
perl - pdl2(或Devel::REPL)中是否有与perl调试器'x'等效的东西?
我还使用pdl2
(PDL
shell)作为我的默认 Perl 交互式 shell(它加载了所有不错的插件Devel::REPL
)。但我错过了x
翻斗打印别名。p
对 piddles 很好,但它不适用于普通的数组引用或哈希引用。我已经加载Data::Dumper
了,但它缺乏一种控制深度的简单方法,我喜欢你可以快速设置深度限制的方式x
,例如x 2 $deep_datastruct
复杂的数据结构。但是用Data::Dumper
的过程比较麻烦:
在 Perl调试器中,您可以直接实现相同的目的x 1 $c
。有没有pdl2
类似的东西这么简洁?
[更新]
并与这个问题相关:是否pdl2
或Devel::REPL
具有 Perl 调试器命令m
或y
?或者应该创建一个模块PadWalker
并导出它们?我想使用真正的 REPL 而不是 Perl 调试器作为交互式 shell,但是 Perl 调试器仍然有一些我不知道如何处理的重要事情Devel::REPL
or pdl2
。
例如查看所有变量(pdl2
仅显示 piddles):
顺便说一句,是否有人知道一个Devel::REPL
用于列出所有正在使用的变量的插件(例如y
在调试器中,但只有名称,而不是值)然后有一个x
-like 来转储想要的变量?
perl - 如何遍历 Perl PDL piddle?
我最接近的是
另外,因为我可以转换[1,2,3,4]
为 piddle $u
,我可以从 中取回一个列表(或矩阵的列表列表)$u
吗?
perl - Perl Inline::C 在失败时返回 pdl 或 0
我正在构建一个连接到相机、拍照并将数据读入 piddle 的模块。所有这些都发生在一个 Inline::C 命令中。使用PDL 文档中的过程,我可以创建pdl *
并返回它。但是相机可能无法拍照,在这种情况下我想0
按照通常的约定返回my $pic_pdl = $Camera->TakePicture or die "Failed to take image"
。这似乎意味着我将需要使用该Inline_Stack_Push
机制,但我不确定如何正确地pdl *
将SV*
. 如果可能的话,我也想设置$!
错误代码。这可以在 Inline 中完成吗?
perl - 存储具有 PDL 作为属性的 Moose 对象
我是 Moose 的新手,在使用 PDL 作为属性遇到障碍之前做得很好。我希望能够将对象写入文件(我一直在使用use MooseX::Storage; with Storage('io' => 'StorableFile');
,并且该对象具有 aPDL
作为属性。PDL::IO::Storable
提供了以这种方式使用的必要方法Storable
,但是我不知道如何在驼鹿。
这是一个例子,它有点长,我知道,但它是尽可能少的:
我想我可能必须创建一个 PDL 类型,甚至可能将 PDL 包装到某些东西中(使用MooseX::NonMoose::InsideOut
),但也许有人可以将我从中拯救出来(或者如果是的话,可以为我指明正确的道路)。
perl - 对存储在哈希中的 AoA 进行操作。PDL 与无 PDL
我有一个 AoA 的哈希值:
我需要按如下方式紧缩:
计算两个数组之间的加权平方差。由于我的哈希很大,我希望 PDL 有助于加快计算速度,但出于某种原因它没有。我还是 PDL 的新手,所以我可能搞砸了。下面带有 PDL 的脚本要慢约 10 倍。描述:以下两个脚本是我试图简单地表示我的程序中发生的事情。我将一些参考值读入散列,然后我将观察结果(动态拉入散列)与这些值进行了多次比较,并具有一定的权重。在脚本中,我将参考数组、权重和观察数组设置为任意固定值,但在运行时并非如此。
这里有两个没有 PDL 和有 PDL 的简单脚本:
没有 PDL
带 PDL
perl - 如何在 pdl2 shell 中添加注释行
我正在使用 pdl2,交互式 perl pdl shell,我想在行中添加注释以记录下一个代码行,以便稍后查看我的交互式会话。
是否可以在 pdl2 shell 中添加注释?
PS:声望1500的人可以加pdl2标签吗?
[更新]
好的,'#' 确实是我想的评论符号,但似乎你不能用 # 开始一行,除非你之前放了一个 sp (或类似的东西)。?!这是一个“功能”吗?
perl - 我可以从 Perl pdl2 shell 中检索命令的完整历史记录(如 bash 中的历史记录)吗?
我正在使用 pdl2 shell,如何列出我的所有命令历史记录?
perl - 如何使用 pdl 创建序列?
我试图用 pdl 将我的部分 R 代码翻译成 perl,我想知道 pdl 是否有任何用于创建序列的语法(除了琐碎的 my $xx=pdl(1..20))
比如有一个向量 ['a','b'] rep 20 => a,b,a,b,a,b.... 20 次?
[编辑]:基本的重复可以用普通的 Perl 重复字符串x
运算符来完成,但我正在寻找 R 中的 rep() 和 seq() 之类的东西: