可以使用numpy的函数来删除nan条目,而不使用for循环。具体的解决方法如下:
import numpy as np
# 创建一个2-D数组,包含nan条目
arr = np.array([[1, 2, np.nan],
[4, np.nan, 6],
[np.nan, 8, 9]])
# 使用np.isnan()函数找到nan条目的索引
nan_indices = np.isnan(arr)
# 使用np.logical_not()函数来获取非nan条目的索引
non_nan_indices = np.logical_not(nan_indices)
# 使用non_nan_indices来过滤数组,只保留非nan条目
result = arr[non_nan_indices]
print(result)
输出结果:
[1. 2. 4. 6. 8. 9.]
在这个方法中,首先使用np.isnan()
函数找到数组中的nan条目的索引。然后,使用np.logical_not()
函数获取非nan条目的索引。最后,使用这些非nan条目的索引来过滤数组,只保留非nan条目。这样就能实现从2-D numpy数组中删除nan条目的目的。
上一篇:不使用For循环处理任何数组