Скажем, у меня есть возрастающая последовательность целых чисел: seq = [1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 4 ...] не гарантируется чтобы иметь точно такое же число каждого целого числа, но гарантированно увеличиваться на 1.Проблема с функцией массива
Есть ли функция F, которая может работать в этой последовательности, в которой F (seq, x) даст мне все 1, когда целое число в последовательности равно х, а все остальные целые числа будет 0.
Например:
т = [1, 1, 1, 1, 2, 2, 3, 3, 3, 4]
F (t, 2) = [0, 0, 0, 0, 0, 0]
EDIT: Возможно, я должен был сделать это более понятным. Есть ли решение, где я могу сделать некоторые алгебраические операции над всем массивом, чтобы получить желаемый результат, не перебирая его?
Итак, мне интересно, могу ли я сделать что-то вроде: F (t, x) = t op x?
В Python (т является numpy.array) это может быть:
(т * -1)% х или что-то ...
EDIT2: Я обнаружил, что тождественная функция I (t [i] == x) допустимо использовать в качестве алгебраической операции. Извините, я не знал о функциях идентификации.
В NumPy: 'т == 2'. – kennytm
У меня вопрос не возникает. «Есть ли функция F, которая ...»? Да, вы сами определили: 'f (seq, x) [i] = (seq [i] == x? 1: 0)' – Ani
Я бы сказал, что ответ «да», и что вы определил функцию в вашем вопросе. Должно быть, вы хотите знать, что мне не хватает. –