Python 2.7 在python中将单个列转换为2d矩阵
我在一列中有如下所示的数据,我想将该列拆分为n个列,并命名行和列。在python中如何实现这一点 -----------样本数据---------- ------------输出应该如下所示---------Python 2.7 在python中将单个列转换为2d矩阵,python-2.7,dataframe,Python 2.7,Dataframe,我在一列中有如下所示的数据,我想将该列拆分为n个列,并命名行和列。在python中如何实现这一点 -----------样本数据---------- ------------输出应该如下所示--------- 最简单的方法之一是使用numpy和重塑功能 import numpy as np k = np.array(data) k.reshape([row,column],order='F') 至于你的例子。您提到的数据来自文本文件,以便从文本文件中获取数据并重塑形状 import nump
最简单的方法之一是使用numpy和重塑功能
import numpy as np
k = np.array(data)
k.reshape([row,column],order='F')
至于你的例子。您提到的数据来自文本文件,以便从文本文件中获取数据并重塑形状
import numpy as np
data = np.genfromtxt("sample-data.txt");
data.reshape([4,7],order='F')
输出将是
Out[27]:
array([[ 5, 0, 18, 2, 5, 1, 158],
[ 3, 1, 23, 10, 6, 1, 132],
[ 5, 0, 11, 1, 1, 1, 150],
[ 0, 0, 1, 0, 0, 0, 17]])
我不知道数据的结构,但假设它位于一个巨大的列中,如上面的示例所示。使用打开
导入数据时。发生了以下情况
data = open("sample-data.txt",'r').readlines()
data
Out[64]:
['5\n',
'3\n',
'5\n',
'0\n',
'0\n',
'1\n',
'0\n',
'0\n',
'18\n',
'23\n',
'11\n',
'1\n',
'2\n',
'10\n',
'1\n',
'0\n',
'5\n',
'6\n',
'1\n',
'0\n',
'1\n',
'1\n',
'1\n',
'0\n',
'158\n',
'132\n',
'150\n',
'17']
这将产生一个字符串值数组,因为
\n
表示下一行。假设这是数字数据,您将需要使用上面的代码来获取数字。它返回一个值错误“ValueError:无法将大小为1的数组重塑为形状(3,2)”,并且我还想将列和行命名为c1、c2…cn和r1、r2..RN错误状态为,您有一个1的数组,它无法重塑为3x2数组。如何将数据输入python?我正在从文本文件“sample data.txt”中打开相同的数据:import numpy作为np data=open(“sample data.txt”,“r”).readlines()k=np.array(data)k.reforme([4,6],order='F')print(k)
示例数据集中有28个条目,因此无法生成4x6矩阵。导入是另一回事,您的数据是否如示例中所示?如果是这样的话,像你这样读这些行会使它们变成字符串,这可能会导致问题。我会再次更新我的帖子。
Out[27]:
array([[ 5, 0, 18, 2, 5, 1, 158],
[ 3, 1, 23, 10, 6, 1, 132],
[ 5, 0, 11, 1, 1, 1, 150],
[ 0, 0, 1, 0, 0, 0, 17]])
data = open("sample-data.txt",'r').readlines()
data
Out[64]:
['5\n',
'3\n',
'5\n',
'0\n',
'0\n',
'1\n',
'0\n',
'0\n',
'18\n',
'23\n',
'11\n',
'1\n',
'2\n',
'10\n',
'1\n',
'0\n',
'5\n',
'6\n',
'1\n',
'0\n',
'1\n',
'1\n',
'1\n',
'0\n',
'158\n',
'132\n',
'150\n',
'17']