【发布时间】:2019-03-30 19:46:17
【问题描述】:
我有一个 numpy 列表,由 (my_array=[] 启动,形状为 (0,)) 然后我将 wm 和 hm 元素附加到它上面,就像这样(r 是一个级联,格式为-[ [300 240 22 22]]):
my_array=[]
for (x, y, w, h) in r:
wm=int(x+ (w/2.))
hm=int(y+ (h/2.))
my_array.append([numpy.float32(wm), numpy.float32(hm)])
return numpy.array(my_array)
该代码产生:
wm element the hm element
[[270.01 303.43] [310.17 306.37]] # second to last row
[[269.82 303.38] [310.99 306.86]] # the last row
the shape of the returned array is (2,2) and is dtype:float32
...
现在的问题是,当我尝试附加 303.43 时,理论上它会是 [-2][1] 但它索引 303.38。这很好,但我还需要索引 303.43。
我发现第一个 [] 索引 wm[0] 或 hm[1] 元素,然后第二个 [] 索引每个元素内的两列值之一 - 例如 [0][-1] 索引 wm 元素 [0] 和最后一行 [-1] 我也想索引倒数第二行并尝试 [0][-2] 但它没有按预期工作(它索引 269.82)。
所以我尝试了 [0][1][-2] 但由于 IndexError: invalid index to scalar variable 没有工作。
我要做的就是找到 wm 元素中 2 列的最后一行和倒数第二行之间的差异(因此在上面的示例中,它将是 269.82-270.1=-0.19 和 303.38-303.43=- 0.05)。索引不起作用。那么有没有办法解决这个问题呢?
【问题讨论】:
-
上一个相同数组的问题:stackoverflow.com/questions/55153448/…
-
显示
r,以及函数的结果(my_array)。我们需要能够重新创建您的阵列。在您之前的问题中,很难理清您对“行”、“列”和索引的使用。 -
@PyDeve1opper 是否有任何解决方案有效?如果是,你应该标记它,让其他用户在遇到同样的问题时知道它。
标签: python arrays numpy indexing array-difference