Предположим, у меня есть массив со следующей формой:
array([[137, 138, 139, ..., 126, 126, 125],
[139, 139, 139, ..., 126, 126, 126],
[140, 140, 140, ..., 127, 126, 126],
...,
[132, 135, 137, ..., 136, 135, 133],
[133, 134, 136, ..., 136, 134, 133],
[133, 134, 134, ..., 136, 134, 133]], dtype=uint8)
Моя цель - манипулировать массивом так, чтобы я мог преобразовать его в двоичный массив, где порог (например, 100) определяет, является ли запись равна 0 или 1.
Пока я только что реализовал вложенные циклы for, проверяющие строки и столбцы соответственно.
thres = 100
for k in range(0, len(my_array)):
for i in range(0, len(my_array[0])):
if(my_array[k][i] < thres):
my_array[k][i] = 1
else:
my_array[k][i] = 0
Упоминается, что я не привязан ни к каким целям исполнения. Но просто из любопытства: как я могу эффективно использовать numpy, чтобы добиться лучшей производительности? Поскольку предоставленный массив может быть вычислен за разумное количество времени, вышеупомянутый подход работает просто отлично. Я могу представить, что с увеличением размера массива производительность подхода станет совершенно недостаточной.