gpt4 book ai didi

ruby - 避免遍历数组

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:59 25 4
gpt4 key购买 nike

我有一堆定义为 2x2 NArray 的点,我似乎无法弄清楚如何避免迭代。这是我的作品:

# Instantiate an example point
point = NArray[[4, 9], [1, 1]]
# Create a blank array to fill
possible_points = NArray.int(2, 2, 16)
possible_points.shape[0].times do |i|
possible_points[i, 0, true] = point[i, 0]
end

这创建了一个看起来像的 NArray

[ [ [ 4, 9 ],
[ 0, 0 ] ],
[ [ 4, 9 ],
[ 0, 0 ] ],
...

在最后一个维度中的所有 16 个元素。

然而,我想要的是这样的:

possible_points[true, 0, true] = point[true, 0]

这种迭代有点违背了数值向量库的目的。而且它是两行代码而不是一行。

本质上,第一个示例(有效的示例)让我在大小为 1,n 的 NArray 上分配一个数字。第二个示例(不起作用的那个)会返回一个错误,因为我试图将大小为 2 的 NArray 分配给大小为 2,n 的位置。

有人知道我怎样才能避免这样的迭代吗?

最佳答案

point = NArray[[4, 9], [1, 1]]
=> NArray.int(2,2):
[ [ 4, 9 ],
[ 1, 1 ] ]

possible_points = NArray.int(2, 2, 16)

possible_points[true,0,true] = point[true,0].newdim(1)

possible_points
=> NArray.int(2,2,16):
[ [ [ 4, 9 ],
[ 0, 0 ] ],
[ [ 4, 9 ],
[ 0, 0 ] ],
[ [ 4, 9 ],
[ 0, 0 ] ],
[ [ 4, 9 ],
[ 0, 0 ] ],
[ [ 4, 9 ],
[ 0, 0 ] ],
...

要将 shape-N 数组存储到 shape-NxM 数组,从 shape=[N] 转换为 shape=[N,1]。在 shape=[N,M] 和 shape=[N,1] 之间的运算中,size=1 axis 处的元素被重复使用。这是 NArray 的一般规则,也适用于算术运算。

关于ruby - 避免遍历数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15992062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com