Python 将列表或数组列表转换为nxn二进制矩阵
好的,我需要采用以下格式的输入文件Python 将列表或数组列表转换为nxn二进制矩阵,python,Python,好的,我需要采用以下格式的输入文件 5 5 12 1 1 1 2 2 1 2 3 3 1 3 2 3 4 4 2 4 4 1 2 2 3 5 5 然后将其转换为一个矩阵,其中左侧列表示客户ID,右侧列表示项目ID 我可以让Python导入数据,但是我很难按照需要的方式操作它 我需要这些数据的例子如下: Item 1 Item 2 Item 3 Customer1: 1 2 0 Customer2: 1 0
5 5 12
1 1
1 2
2 1
2 3
3 1
3 2
3 4
4 2
4 4
1 2
2 3
5 5
然后将其转换为一个矩阵,其中左侧列表示客户ID,右侧列表示项目ID
我可以让Python导入数据,但是我很难按照需要的方式操作它
我需要这些数据的例子如下:
Item 1 Item 2 Item 3
Customer1: 1 2 0
Customer2: 1 0 2
以下是我用来导入数据的方法:
def DataImport(filename):
Data = []
with open(filename) as f:
for line in f:
Data.append([int(v) for v in line.split()])
return Data
(不完整)
我认为numpy方法以一种最容易使用的方式呈现,但我不确定如何让Python使用customerID作为键,然后以前面提到的方式添加值
我不确定我是否解释得很好,但如果你需要更多的澄清,我可以回答你的问题 原则上,我强烈建议使用PANDAS()之类的东西,尤其是
pandas.read_tabel
将生成一个数据帧,您可以根据自己的喜好进行操作。
然而,如果您不喜欢,您也可以通过简单地使用
for row in matrix.T:
instructions for rows...
不如
for col in matrix:
instructions for columns...
希望有帮助。示例的第一行有
5 12
,其余的只有两个条目。通常,您是否希望项目1项目2项目3
,因为第一行有三个条目?那么剩下的项目3的0
?您的示例输入需要更清楚地链接到所需的输出。您要查找的内容不明显。我想您要查找的是输入行中不存在的列的默认值?第一行是不同的数据,很抱歉,我忘了提及,这是第一行之后的所有内容。
for col in matrix:
instructions for columns...