Маскировка массивов в Java как с помощью numpy в Python

1

Есть ли элегантный способ выбора элементов массива на Java, похожих на Numpy в Python?

mask = np.array([True, False, False, True])
myArray = np.array([4, 3, 1, 2])
result = myArray[mask]
print(result)

Это даст мне [4, 2]

Теперь я хочу сделать то же самое на Java (без необходимости писать много строк кода).

Теги:
arrays
numpy

1 ответ

1
Лучший ответ

В Java такого встроенного механизма нет, классы утилиты массива также не имеют этого.

int[] array = {4, 3, 1, 2};
boolean[] mask = {true, false, false, true};

int[] result = IntStream.range(0, array.length)
                        .filter(i -> mask[i])
                        .map(i -> array[i])
                        .toArray();
  • 0
    Спасибо за ваш ответ, он работает и является разумным по объему! Все еще грустно, что нет более элегантного способа сделать это в Java ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню