【发布时间】:2018-11-07 09:33:34
【问题描述】:
我维护了一些代码,但遇到了类似的情况:
travel_time_vec = np.zeros(...)
for v in some_indexes: # some_indexes is a list of row indexes
traveltimes = traveltime_2d_array[v, list_of_column_indexes]
best_index = np.argmin(traveltimes)
travel_time_vec[v] = traveltimes[best_index]
我想放弃 for 循环并立即执行以下所有操作 - 但天真地要求 traveltime_2d_array[some_indexes, list_of_column_indexes] 会导致:
{IndexError}形状不匹配:索引数组无法与形状 (4,) (8,) 一起广播
【问题讨论】:
-
不知道你在这里做什么。你的问题听起来像“这是一个写得很糟糕的函数,现在为我重构它”。你能提供一个minimal reproducible example 描述你在做什么吗?
-
traveltimes = traveltime_2d_array[v, list_of_column_indexes]将traveltime_2d_array的元素数组返回给我,这些元素位于v的行list_of_column_indexes上。我想矢量化 for 循环 - 也就是在some_indexes上为每一行返回一个二维数组
标签: python numpy numpy-indexing