我在Python中有一個包含浮點值的二維列表。我想找出列表中所有元素的索引,這些索引都超出了特定的值。如何查找python多維列表中特定值以上的所有索引
例如,在一個2×4列表如下(整數爲方便起見):
100 200 100 250
125 100 250 100
我需要所有其是等於或高於200的值的索引,這些索引是[0] [ 1],[0] [3]和[1] [2]。
請在這方面提供幫助。
謝謝。
我在Python中有一個包含浮點值的二維列表。我想找出列表中所有元素的索引,這些索引都超出了特定的值。如何查找python多維列表中特定值以上的所有索引
例如,在一個2×4列表如下(整數爲方便起見):
100 200 100 250
125 100 250 100
我需要所有其是等於或高於200的值的索引,這些索引是[0] [ 1],[0] [3]和[1] [2]。
請在這方面提供幫助。
謝謝。
您可以嵌套循環做到這一點:
indices = []
for i, row in enumerate(grid):
for j, val in enumerate(row):
if val > threshold:
indices.append((i, j))
但它很可能,你應該使用numpy,提供高速的矢量化操作和語法方面非常方便。用numpy的ndarray代替嵌套列表,代碼如下:
numpy.where(grid > threshold)
第一計算策略將是,沒有任何庫:
x = [ [100, 200, 100, 250],
[125, 100, 250, 100] ]
indices = []
for i, range in enumerate(x):
for j, elem in enumerate(range):
if elem >= 200:
indices.append((i, j))
結果是:
>>> indices
[(0, 1), (0, 3), (1, 2)]
Numpy相當方便:
>>> import numpy as np
>>> a = [[100, 200, 100, 250], [125, 100, 250, 100]]
>>> a=np.array(a)
>>> np.argwhere(a>=200)
array([[0, 1],
[0, 3],
[1, 2]])
Can你向我們展示你到目前爲止所嘗試過的? – Blubber