查找受另一个数组索引影响的数组的最小值和另一个数组的值

时间:2018-03-20 20:00:34

标签: python arrays minimum

我有一个名为dist的正方形数组n x n,一个名为particion的向量m<n,其索引从0到{{1}另一个名为n的大小为incidencia的人。一切都是使用NumPy存储的。

我想要找到的是m的最小值受两个条件限制并将参数作为向量捕获。这是一个粗略的代码,从C ++翻译成python:

dist

我觉得这不是找到最小值的最佳方法,因为这个函数需要花费太多时间来计算,即使在C ++中也是如此。有没有更好的办法?更多&#34; python-eske&#34;方式是什么?

1 个答案:

答案 0 :(得分:0)

我不知道你实际数据的范围,所以我已经生成了一些随机数据。

from random import randrange

m, n = 100, 200

dist = [[i+j for j in range(n)] for i in range(n)]
part = [randrange(n) for k in range(m)]
inci = [randrange(9) for k in range(m)]

# keep only items in `part` where corresponding `inci` value < 2
part = [p for p,i in zip(part, inci) if i < 2]

# check dist for all couples in `part` and extract minimal value
d = min(dist[pi][pj] for pi in part for pj in part)

此代码仅提供最小距离。如果您还需要达到最小分数的索引,最好切换到numpy并使用它提供的argmin函数。