问题标签 [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.
python - 从二维数组Python中提取索引
我有一个gray_image
shape 的图像(名为 )(1830, 1830)
。经过一些图像处理(我创建了超像素),我得到了一个名为segments
(形状(1830, 1830)
)的二维数组,其中包含从 0 到 72 的值。
我需要从找到值“0”的位置获取索引,segments
并使用该索引将值保存gray_image
在新数组(名为:)中arr
。
我认为一个示例将帮助您更好地理解我的问题:
假设我有这个图像,一个 3x3 维度的二维数组:
这是我的分段数组,一个 3x3 维度的 2D 数组:
我需要创建一个算法来输出arr
带有 shape的数组(3, 3)
。
我刚刚意识到每个段的数字计数是不同的,所以我不确定这是否可以使用 2D 数组。我正在考虑使用诸如字典之类的集合来保存与索引相关的所有信息。
所以,这是我到目前为止所做的:
但这根本不起作用,我遇到了这个错误:
我有点坚持了几天,所以任何建议都将受到高度赞赏。
python - Numpy Slicing - 奇怪的行为
我对 Numpy 有疑问。基本上我只想在 for 循环中做一个简单的赋值。但奇怪的是,这不起作用。这是我的示例代码:
我会假设在循环之后所有的值test
都等于 1,但是我的程序的输出是
(array([ 71, 72, 73, ..., 1277, 1278, 1279]),)
我不明白为什么数组中仍然有 0 的值。尤其是在索引 72 处,它位于循环的第二次迭代的中间。
请你帮助我好吗?谢谢!
python - 有没有一种通用的方法来确定 numpy 索引表达式中使用的索引数量?
许多不同的东西可以用作索引器numpy
,在我的例子中,最常见的是整数列表和布尔表达式,但切片等也在桌面上。现在我有一个函数,它将索引表达式作为参数并使用预先计算的数组的相应元素。作为 MWE:
现在我想在实际进行索引f(indexer)
之前计算出 的形状(我需要它来构造一些辅助数组)。对于一个列表,它是明确的(3, len(indexer))
,对于一个布尔索引表达式,它是(3, np.nonzero(indexer))
一个我什至不知道的切片,但是有没有一种(简单、快速、Pythonic、通用)方法可以让我f.M[:,indexer]
独立于哪种索引的大小我使用的表达方式?如果它不是一个通用的,那么也许至少有一个适用于布尔表达式和列表?
python - 使用基于自身的条件语句索引 numpy 数组是什么意思?
我正在开发一个用于网络分析的大型库,并且遇到了一条令人困惑的线路,我不熟悉它的调用约定。
循环内部的问题行,它remaining
通过基于i
和自身的条件索引数组。经过一些调试后,它似乎不仅仅是评估布尔值并使用该布尔值索引数组?
是否有人熟悉此语法/约定并能够将我指向 numpy 文档的相关部分或进行解释?找了好几个小时还是没有结果,谢谢。
pytorch - PyTorch 中的批量 index_fill
我有一个 size 的索引张量(2, 3)
:
和一个 size 的值张量(2, 8)
:
我想通过索引设置元素value
。1
**dim=-1
输出应该是这样的:
我试过value[range(2), index] = 1
了,但它触发了一个错误。我也试过torch.index_fill
,但它不接受批量索引。torch.scatter
需要创建一个大小为 的额外张量2*8
,1
这会消耗不必要的内存和时间。
python - 从索引数组中,在这些索引处创建一个值数组
这是针对机器学习问题(当然是在 Python 中)。
我有一个二维数组,行是点集,列是这些点的另一个一维值数组的索引。
我需要创建一个二维数组,它是原始数据数组,但其中的值现在是索引表示的标签中的值。
显然,我可以用 for 循环来做到这一点。我在这里问,以防 numpy 或其他东西有这样做的电话。
python - 当值超出范围时,在二维数组中显示错误的轴
我有一个二维数组(行*列)行表示axis0,列表示aixs1。
例子:
现在,当我尝试访问该值(沿轴 0 超出范围)时,我正在低于正确的异常。
注意:当我沿着axis1尝试时,它仍然显示相同的axis0,它应该是axis1。
python - 在python中从没有循环的数组中提取数组
我正在尝试从数组中提取数组的一部分。
假设我有一个array1
shape数组(M, N, P)
。对于我的具体情况,M = 10
, N = 5
, P = 2000
. 我有另一个array2
shape数组,其中包含沿最后一个轴(M, N, 1)
的有趣数据的起点。array1
我想从 给出的索引开始提取这些数据的 50 个点array2
,有点像这样:
我期望 shape 的结果(M, N, 50)
。不幸的是,我得到了错误:
当然我也可以通过遍历数组来得到结果,但我觉得必须有一个更聪明的方法,因为我经常需要这个。
python - 添加由另一个数组索引的数组的重复元素
我有一个相对简单的问题,如果不使用循环就无法解决。我很难找出这个问题的正确标题。假设我们有两个 numpy 数组:
array_1
array_2
表示我们想要的行的索引sum
。因此,例如,数组中的4
第 行应包含与array_1中的所有 s 具有相同行索引的所有行的总和。result
array_2
3
在代码中更容易理解:
结果应该是:
我尝试使用np.einsum
,但我需要将数组中的两个元素都用作索引,并将其行用作索引,所以我不确定np.einsum
这里是否是最佳路径。
这是我在图形中遇到的问题。array_1
表示三角形的顶点索引并array_2
表示法线,其中行的索引对应于顶点的索引