问题标签 [numpy-indexing]

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 回答
70 浏览

python - 从二维数组Python中提取索引

我有一个gray_imageshape 的图像(名为 )(1830, 1830)。经过一些图像处理(我创建了超像素),我得到了一个名为segments(形状(1830, 1830))的二维数组,其中包含从 0 到 72 的值。

我需要从找到值“0”的位置获取索引,segments并使用该索引将值保存gray_image在新数组(名为:)中arr

我认为一个示例将帮助您更好地理解我的问题:

假设我有这个图像,一个 3x3 维度的二维数组:

这是我的分段数组,一个 3x3 维度的 2D 数组:

我需要创建一个算法来输出arr带有 shape的数组(3, 3)

我刚刚意识到每个段的数字计数是不同的,所以我不确定这是否可以使用 2D 数组。我正在考虑使用诸如字典之类的集合来保存与索引相关的所有信息。

所以,这是我到目前为止所做的:

但这根本不起作用,我遇到了这个错误:

我有点坚持了几天,所以任何建议都将受到高度赞赏。

0 投票
1 回答
35 浏览

python - Numpy Slicing - 奇怪的行为

我对 Numpy 有疑问。基本上我只想在 for 循环中做一个简单的赋值。但奇怪的是,这不起作用。这是我的示例代码:

我会假设在循环之后所有的值test都等于 1,但是我的程序的输出是 (array([ 71, 72, 73, ..., 1277, 1278, 1279]),) 我不明白为什么数组中仍然有 0 的值。尤其是在索引 72 处,它位于循环的第二次迭代的中间。

请你帮助我好吗?谢谢!

0 投票
0 回答
19 浏览

python - 有没有一种通用的方法来确定 numpy 索引表达式中使用的索引数量?

许多不同的东西可以用作索引器numpy,在我的例子中,最常见的是整数列表和布尔表达式,但切片等也在桌面上。现在我有一个函数,它将索引表达式作为参数并使用预先计算的数组的相应元素。作为 MWE:

现在我想在实际进行索引f(indexer) 之前计算出 的形状(我需要它来构造一些辅助数组)。对于一个列表,它是明确的(3, len(indexer)),对于一个布尔索引表达式,它是(3, np.nonzero(indexer))一个我什至不知道的切片,但是有没有一种(简单、快速、Pythonic、通用)方法可以让我f.M[:,indexer] 独立于哪种索引的大小我使用的表达方式?如果它不是一个通用的,那么也许至少有一个适用于布尔表达式和列表?

0 投票
2 回答
49 浏览

python - 使用基于自身的条件语句索引 numpy 数组是什么意思?

我正在开发一个用于网络分析的大型库,并且遇到了一条令人困惑的线路,我不熟悉它的调用约定。

循环内部的问题行,它remaining通过基于i和自身的条件索引数组。经过一些调试后,它似乎不仅仅是评估布尔值并使用该布尔值索引数组?

是否有人熟悉此语法/约定并能够将我指向 numpy 文档的相关部分或进行解释?找了好几个小时还是没有结果,谢谢。

0 投票
1 回答
161 浏览

pytorch - PyTorch 中的批量 index_fill

我有一个 size 的索引张量(2, 3)

和一个 size 的值张量(2, 8)

我想通过索引设置元素value1**dim=-1输出应该是这样的:

我试过value[range(2), index] = 1了,但它触发了一个错误。我也试过torch.index_fill,但它不接受批量索引。torch.scatter需要创建一个大小为 的额外张量2*81这会消耗不必要的内存和时间。

0 投票
1 回答
35 浏览

python - 从索引数组中,在这些索引处创建一个值数组

这是针对机器学习问题(当然是在 Python 中)。

我有一个二维数组,行是点集,列是这些点的另一个一维值数组的索引。

我需要创建一个二维数组,它是原始数据数组,但其中的值现在是索引表示的标签中的值。

显然,我可以用 for 循环来做到这一点。我在这里问,以防 numpy 或其他东西有这样做的电话。

0 投票
1 回答
35 浏览

python - 当值超出范围时,在二维数组中显示错误的轴

我有一个二维数组(行*列)行表示axis0,列表示aixs1。

例子:

现在,当我尝试访问该值(沿轴 0 超出范围)时,我正在低于正确的异常。

注意:当我沿着axis1尝试时,它仍然显示相同的axis0,它应该是axis1

0 投票
2 回答
62 浏览

python - 在python中从没有循环的数组中提取数组

我正在尝试从数组中提取数组的一部分。

假设我有一个array1shape数组(M, N, P)。对于我的具体情况,M = 10, N = 5, P = 2000. 我有另一个array2shape数组,其中包含沿最后一个轴(M, N, 1)的有趣数据的起点。array1我想从 给出的索引开始提取这些数据的 50 个点array2,有点像这样:

我期望 shape 的结果(M, N, 50)。不幸的是,我得到了错误:

当然我也可以通过遍历数组来得到结果,但我觉得必须有一个更聪明的方法,因为我经常需要这个。

0 投票
1 回答
68 浏览

python - 添加由另一个数组索引的数组的重复元素

我有一个相对简单的问题,如果不使用循环就无法解决。我很难找出这个问题的正确标题。假设我们有两个 numpy 数组:

array_1array_2表示我们想要的行的索引sum。因此,例如,数组中的4第 行应包含与array_1中的所有 s 具有相同行索引的所有行的总和。resultarray_23

在代码中更容易理解:

结果应该是:

我尝试使用np.einsum,但我需要将数组中的两个元素都用作索引,并将其行用作索引,所以我不确定np.einsum这里是否是最佳路径。

这是我在图形中遇到的问题。array_1表示三角形的顶点索引并array_2表示法线,其中行的索引对应于顶点的索引