Как найти индекс из необработанного и столбца в Python?

Я хотел бы использовать функцию np.put (), но для этого требуются целевые индексы, интерпретируемые как целые числа.

[Проблема:] Я знаю необработанные данные и столбцы, но теперь мне нужно найти индекс. В моем случае у меня есть матрица 6 на 6, и я хотел бы найти индекс данных [3,3].

heatmap = np.zeros((6,6), dtype=int);
index? = someFuction(heatmap[r,c]);

Я пробовал использовать такие функции, как where (), enumerate () и shape (), но это не сработало.

Это должно быть очень простое решение, но я не мог найти его нигде в Интернете.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
153
1

Ответы 1

Вероятно, вы захотите использовать 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]

Не могу помочь, почему бы просто не вычислить 3*6+3, или вообще: row*numberOfColumns + column? Слишком много программистов на C и C++ ???

Aconcagua 21.03.2018 12:52

@Aconcagua Да, это еще один вариант. Эта функция просто удобна среди многих, которые предоставляет NumPy, чтобы избежать ошибок в повторяющихся задачах (она также имеет некоторые дополнительные функции, такие как выбор порядка C / Fortran, обработка за пределами границ и работает для произвольного количества измерений, хотя они не имеют отношения к этому вопросу). Не уверен, что один из них больше C / C++, чем другой, если бы я программировал на C++, я бы, вероятно, написал функцию для этого, в моей библиотеке ее не было :)

jdehesa 21.03.2018 12:59

Другие вопросы по теме