nputData =[[ 1. 2. nan 4.],[nan 6. 7. nan]],取出每行第一个值
时间: 2023-05-18 13:04:47 浏览: 75
可以使用numpy库中的nanargmin函数来取出每行第一个非nan值的索引,然后再根据索引取出对应的值。代码如下:
```python
import numpy as np
inputData = np.array([[1., 2., np.nan, 4.], [np.nan, 6., 7., np.nan]])
# 取出每行第一个非nan值的索引
idx = np.nanargmin(inputData, axis=1)
# 根据索引取出对应的值
result = inputData[np.arange(len(inputData)), idx]
print(result)
```
输出结果为:
```
[1. 6.]
```
相关问题
为什么numpy.nan == numpy.nan输出结果为False
在NumPy中,`numpy.nan`表示一个特殊的非数值(NaN),而NaN是一个特殊的浮点数,它不等于任何其他值,包括自己。这是因为NaN的定义是一个不确定的或未定义的值,无法与其他值进行比较来判断相等性。
在NumPy中使用`==`运算符比较两个NaN时,结果将始终为False。这是为了遵循IEEE浮点数标准,该标准指定NaN与任何值都不相等,包括自身。
如果要检查一个值是否为NaN,应使用`numpy.isnan()`函数,它会返回一个布尔值,表示给定值是否为NaN。例如,`numpy.isnan(numpy.nan)`将返回True。
df2.loc[:, df2['is_outlier']==0] = np.nan
这段代码的作用是将 DataFrame `df2` 中 `is_outlier` 列值为 0 的所有列的元素设置为 NaN(缺失值)。
- `df2['is_outlier']==0` 是一个布尔条件,用于选择 `is_outlier` 列值为 0 的行。
- `df2.loc[:, df2['is_outlier']==0]` 是通过布尔条件选择对应的列。
- `np.nan` 是 NumPy 库中表示缺失值的常量。
所以这段代码的意思是将 DataFrame `df2` 中 `is_outlier` 列值为 0 的所有列的元素设置为 NaN,以标记这些元素为缺失值。
阅读全文