首页 > 解决方案 > Java中的屏蔽数组与python中的numpy一样

问题描述

有没有一种优雅的方式来选择 Java 中的数组元素,类似于 Python 中的 Numpy?

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

这会给我 [4, 2]

现在我想在 Java 中做同样的事情(无需编写多行代码)。

标签: javapythonarraysnumpy

解决方案


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();

推荐阅读