【发布时间】:2015-08-30 16:27:22
【问题描述】:
我有一个大文本文件,每行包含三个元素——用户、问题、价值。我想从这些数据中创建一个 2d numpy 数组。数据样本是这样的:
114250 3 1
124400 7 4
111304 1 1
不幸的是,我事先不知道结果矩阵的大小,因此无法对其进行初始化。
我设法使用此代码将数据读入三元组列表(将任意用户 ID 转换为线性 1,2,3... 表示):
users = dict()
data = list()
for line in fileinput.input( args[0] ):
tokens = line.split("\t")
tokens = [ t.strip("\r").strip("\n") for t in tokens ]
user = tokens[0]
question = tokens[1]
response = tokens[2]
if user in users.keys():
user_id = users.get( user ) # existing user
else:
user_counter = user_counter + 1 # add new user
users[user] = user_counter
user_id = user_counter
data.append( (int(user_id), int(question), int(response)) )
我不确定如何将此元组列表转换为 2D numpy 数组。我很想知道如何以 Python 的方式做到这一点。
应该有一些方法可以读取每个元组,将 user_id 和 question 作为列、行并将响应值放入该 2D numpy 数组中。例如像
这样的元组(10,3,1)
表示我想将值 1 放入二维矩阵第 10 行第 3 列。
【问题讨论】:
-
你要存储3个值,你想要numpy数组的结构如何
-
@ZdaR 我想将每个元组的前两个值用作索引(列和行),并将元组中的第三个值放在索引位置。元组中的值是整数。
标签: python