# Read data into numpy arrays with open(path, 'r') as fp: data = list(csv.reader(fp)) data = np.array(data[1:])[:, 1:].astype(float) #去掉表头行和id列 if not target_only: feats = list(range(93))#target_only 默认是false, 所以用的是全量特征,如果要用自己选择特征,则实例化这个类的时候,设置成True else: # TODO: Using 40 states & 4 tested_positive features (indices = 57 & 75) feats = list(range(40)) + feats_selected # feats_selected是我们选择特征, 40代表是states特征 if mode == 'test': # Testing data # data: 893 x 93 (40 states + day 1 (18) + day 2 (18) + day 3 (17)) data = data[:, feats] self.data = torch.FloatTensor(data) else: # Training data (train/dev sets) # data: 2700 x 94 (40 states + day 1 (18) + day 2 (18) + day 3 (18)) target = data[:, -1] data = data[:, feats]
时间: 2024-02-14 15:32:01 浏览: 93
这段代码读取了数据文件,并将其存储为numpy数组。首先,它打开文件并使用csv.reader读取数据。然后,它将数据转换为numpy数组,并移除第一行(表头行)和第一列(id列)。
接下来,根据参数target_only的值,选择要使用的特征。如果target_only为False,则使用所有的特征(93个)。如果target_only为True,则使用40个states特征加上自定义选择的特征(feats_selected)。
如果mode为'test',表示正在处理测试数据,将根据选择的特征对数据进行切片,并将其转换为torch的FloatTensor类型。
否则,表示正在处理训练数据或开发集数据,将目标变量(最后一列)和选择的特征切片出来,并将它们转换为torch的FloatTensor类型。
相关问题
test_path = "stock_daily/8/stock_test.csv" with open(test_path) as f: self.data = np.loadtxt(f, delimiter=",") # addi=np.zeros((self.data.shape[0],1)) # self.data=np.concatenate((self.data,addi),axis=1) self.data = self.data[:, 0:6] # self.data = np.vstack((self.data1, self.data[:, 4])) for i in range(len(self.data[0])): self.data[:, i] = (self.data[:, i] - mean_list[i]) / (std_list[i] + 1e-8) self.value = torch.rand(self.data.shape[0] - SEQ_LEN, SEQ_LEN, self.data.shape[1]) self.label = torch.rand(self.data.shape[0] - SEQ_LEN, 1) for i in range(self.data.shape[0] - SEQ_LEN): self.value[i, :, :] = torch.from_numpy(self.data[i:i + SEQ_LEN, :].reshape(SEQ_LEN, self.data.shape[1])) self.label[i, :] = self.data[i + SEQ_LEN, 0] self.data = self.value
这段代码是一个数据预处理的过程,首先从指定路径读取测试数据,然后将读取的数据进行归一化处理,接着将处理后的数据按照指定的时间序列长度(SEQ_LEN)切分成多个小数据集(value),同时对应的标签(label)为每个小数据集的最后一个时间点的数据。最后将处理后的数据存储在self.data中。这个过程是为了将原始的数据转化为神经网络可以接受的形式,以便进行训练和预测。
import jieba import numpy from PIL import Image import csv from wordcloud import WordCloud with open('liur.csv', 'r', encoding='utf-8') as f: reader = csv.reader(f) data =[] for row in reader: try: data.append(row[1]) except IndexError: pass text = ''.join(row) words = jieba.lcut(text) print(words) bgImg=numpy.array(Image.open("nanhai.jpg")) cloud=WordCloud( font_path="C:\Windows\Fonts\simsun.ttc", background_color="white", mask=bgImg ).generate(text) cloud.to_file("词云.png") print("词云绘制成功")
在你的代码中,使用了 `row` 变量来拼接文本,这个变量应该写在 `for` 循环的内部,以保证能够正确拼接文本。同时,在使用 `WordCloud` 类生成词云时,也需要将变量名 `text` 传递给 `generate()` 方法,以保证能够正确生成词频。下面是修改后的代码:
```python
import jieba
import numpy
from PIL import Image
import csv
from wordcloud import WordCloud
with open('liur.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
data = []
for row in reader:
try:
data.append(row[1])
except IndexError:
pass
text = ''.join(data)
words = jieba.lcut(text)
print(words)
bgImg = numpy.array(Image.open("nanhai.jpg"))
cloud = WordCloud(
font_path="C:\Windows\Fonts\simsun.ttc",
background_color="white",
mask=bgImg
).generate(text)
cloud.to_file("词云.png")
print("词云绘制成功")
```
这样,你应该能够成功生成词云了。
阅读全文