Я хотел бы использовать функцию np.put (), но для этого требуются целевые индексы, интерпретируемые как целые числа.
[Проблема:] Я знаю необработанные данные и столбцы, но теперь мне нужно найти индекс. В моем случае у меня есть матрица 6 на 6, и я хотел бы найти индекс данных [3,3].
heatmap = np.zeros((6,6), dtype=int);
index? = someFuction(heatmap[r,c]);
Я пробовал использовать такие функции, как where (), enumerate () и shape (), но это не сработало.
Это должно быть очень простое решение, но я не мог найти его нигде в Интернете.






Вероятно, вы захотите использовать np.ravel_multi_index:
import numpy as np
heatmap = np.zeros((6,6), dtype=int)
index = np.ravel_multi_index([[3], [3]], heatmap.shape)
print(index)
>>> [21]
@Aconcagua Да, это еще один вариант. Эта функция просто удобна среди многих, которые предоставляет NumPy, чтобы избежать ошибок в повторяющихся задачах (она также имеет некоторые дополнительные функции, такие как выбор порядка C / Fortran, обработка за пределами границ и работает для произвольного количества измерений, хотя они не имеют отношения к этому вопросу). Не уверен, что один из них больше C / C++, чем другой, если бы я программировал на C++, я бы, вероятно, написал функцию для этого, в моей библиотеке ее не было :)
Не могу помочь, почему бы просто не вычислить
3*6+3, или вообще:row*numberOfColumns + column? Слишком много программистов на C и C++ ???