如何使用基于numpy中特定ID的掩码将数据分隔为两个csv

2024-10-04 05:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

这是经过编辑的前一个问题。你知道吗

我正在做一个GIT课程geopython2018在我的空闲时间,因为我正在努力学习Python。这是一门公开课,但由于我不是那所大学的一员,我除了在这里无处求助。你知道吗

输入数据为:

https://docs.google.com/spreadsheets/d/1gTWu5l6wiankP4ktfWgHLdw_OqnXX1RoY291HWrIxCM/edit?usp=sharing

首先,我阅读数据:

import numpy as np
fp = '../6153237444115dat.csv'
data = np.genfromtxt(fp, skip_header=1, usecols=(0,2,22,27,28), delimiter=',')

添加列变量

station = data[:, 0]
date = data[:, 1]
temp = data[:, 2]
temp_max = data[:, 3]
temp_min = data[:, 4]
len(temp)

伦是11694。你知道吗

我需要在numpy中执行以下操作:

  1. 创建一个新的掩码变量tempmask,该变量对所有有限的温度值为True,对temp变量中的nan值为False

  2. 使用tempmask数组从列变量(date、temp、temp\u max、temp\u min)中删除所有行

我在处理这件事上遇到了麻烦。因此,创建临时掩码:

tempmask = np.isfinite(temp)

这使得掩码从temp中移除Nan值。现在,我需要使用相同的tempmask数组从station、date、temp\u max和temp\u min数组中删除这些特定值。你知道吗

date = date[tempmask]
temp_max = temp_max[tempmask] 

之后,我需要导出两个单独的csv文件。我需要使用名为“kmask”的掩码选择“station”==29980的所有行,并将其导出到“kumpula”和“Rovaniemi”,其中“station”==29450使用数组掩码“rmask”。你知道吗

kmask = data[station==29980]
rmask = data[station==28450]
kumpula = kumpula[kmask]
rovaniemi = rovaniemi[rmask]

代码的最后一部分不起作用,我需要帮助。你知道吗


Tags: 数据numpydatadatenp数组mintemp
1条回答
网友
1楼 · 发布于 2024-10-04 05:26:50

如果有人想知道我是怎么做到的:

堆叠列并将其转置

kumpula = np.vstack((station, date, temp, temp_max, temp_min, celsius))
kumpula = np.transpose(kumpula)
kmask = station==29980
kumpula = kumpula[kmask]
rovaniemi = np.vstack((station, date, temp, temp_max, temp_min, celsius))
rovaniemi = np.transpose(Rovaniemi)
rmask = station==29450
rovaniemi = rovaniemi[rmask]

相关问题 更多 >