要在不使用循环的情况下提取numpy数组的有限值,可以使用numpy的条件索引功能。
首先,使用numpy的isnan函数检查数组中的非有限值(NaN和inf)。然后,使用该条件索引功能,将条件应用于数组,获取仅包含有限值的子数组。
下面是一个示例代码:
import numpy as np
# 创建一个包含NaN和inf的示例数组
arr = np.array([1, 2, np.nan, 3, np.inf, 4])
# 使用isnan函数检查非有限值
mask = np.isnan(arr) | np.isinf(arr)
# 使用条件索引获取仅包含有限值的子数组
filtered_arr = arr[~mask]
print(filtered_arr)
输出结果将只包含有限值的子数组:[1. 2. 3. 4.]
在这个例子中,我们首先创建了一个包含NaN和inf的示例数组。然后,使用isnan函数检查非有限值,并将结果保存在一个布尔掩码数组中。最后,我们使用条件索引的方式,将该布尔掩码数组应用于原始数组,获取仅包含有限值的子数组。
领取专属 10元无门槛券
手把手带您无忧上云