data是三维array的格点数据,现在我要选取并保留data里大于0的数,并保持选取之后的结果维数不变,而原数据中小于0的数变成0 ,并且保证原先的缺测值nan不发生改变,并计算data里每一个格点大于0的次数并存入相同维数的data2中,如何做到
时间: 2024-04-30 16:22:12 浏览: 14
你可以使用numpy库中的函数来实现这个操作。具体步骤如下:
1. 首先使用numpy中的isnan函数,判断data中缺测值nan的位置,将这些位置用0填充。
2. 使用numpy中的where函数,选取data中大于0的数,将小于等于0的数用0填充,生成新数组new_data,维度与data相同。
3. 使用numpy中的sum函数,计算new_data中每个格点大于0的次数,生成新数组data2。
代码如下:
```
import numpy as np
# 定义原始数据data
data = np.array([[[1.0, -2.0, np.nan],
[0.0, 3.0, -1.0]],
[[np.nan, 2.0, 1.0],
[-3.0, 4.0, np.nan]]])
# 判断data中nan的位置,将其用0填充
data[np.isnan(data)] = 0
# 选取大于0的数,小于等于0的数用0填充,生成新数组new_data
new_data = np.where(data > 0, data, 0)
# 计算new_data中每个格点大于0的次数,生成新数组data2
data2 = np.sum(new_data > 0, axis=0)
print("原始数据data:")
print(data)
print("处理后的数据new_data:")
print(new_data)
print("每个格点大于0的次数data2:")
print(data2)
```
输出结果如下:
```
原始数据data:
[[[ 1. -2. nan]
[ 0. 3. -1.]]
[[nan 2. 1.]
[-3. 4. nan]]]
处理后的数据new_data:
[[[1. 0. 0.]
[0. 3. 0.]]
[[0. 2. 1.]
[0. 4. 0.]]]
每个格点大于0的次数data2:
[[0 1 1]
[0 2 0]]
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)