У меня есть массив из 75 целочисленных значений, и я пытаюсь заменить значения в массиве строками, если они находятся в определенном диапазоне значений.
Все значения в массиве находятся в диапазоне от 0 до75. Я хочу заменить все значения в диапазоне от 0 до 24 определенной строкой, все значения в диапазоне от 25 до 49 другой строкой и все значения в 50+ третьей строкой.
Я пытаюсь сделать это с помощью numpy,
setosa = 'Iris-setosa '
versicolor = 'Iris-versicolor '
virginica = 'Iris-virginica '
arr_predicted1 = np.array(arr_indices).reshape(1, 75)
arr_predicted2 = np.where(arr_predicted1 < 25, setosa, arr_predicted1)
arr_predicted2 = np.where((arr_predicted1 > 24) & (arr_predicted1 < 50),
versicolor, arr_predicted1)
arr_predicted2 = np.where(arr_predicted1 > 49, virginica, arr_predicted1)
Проблема, с которой я сталкиваюсь, заключается в том, что она выполняет только третью команду np.where, где она заменяет все значения, которые>49 со строкой virginica, как я хотел, но, похоже, игнорируются две предыдущие команды, в которых я хочу заменить два других диапазона соответствующими строками (setosa и versicolor).
Есть ли способ сделать это?Или, может быть, создать новый массив, где строки соответствуют диапазонам значений, которые я хочу, по существу, заменить значения на строки, но создать новый массив?