Python 3.x 2d numpy数组到3列数据帧
我有一个2d numpy矩阵,例如:Python 3.x 2d numpy数组到3列数据帧,python-3.x,pandas,numpy,Python 3.x,Pandas,Numpy,我有一个2d numpy矩阵,例如: arr = np.arange(0, 12).reshape(3,4) 这是我希望在数据帧中得到的,这样: X Y Z 0 0 0 0 1 1 0 2 2 0 3 3 1 0 4 1 1 5 1 2 6 1 3 7 2 0 8 2 1 9 2 2 10 2 3 11 我如何(有效地)做到这一点 您可以使用numpy功能: x1 =np.repeat(np.arange(arr.shape[0]), len(arr.flatten())/len(np.ar
arr = np.arange(0, 12).reshape(3,4)
这是我希望在数据帧中得到的,这样:
X Y Z
0 0 0
0 1 1
0 2 2
0 3 3
1 0 4
1 1 5
1 2 6
1 3 7
2 0 8
2 1 9
2 2 10
2 3 11
我如何(有效地)做到这一点 您可以使用
numpy
功能:
x1 =np.repeat(np.arange(arr.shape[0]), len(arr.flatten())/len(np.arange(arr.shape[0])))
x2 =np.tile(np.arange(arr.shape[1]), int(len(arr.flatten())/len(np.arange(arr.shape[1]))))
x3= arr.flatten()
pd.DataFrame(np.array([x1,x2,x3]).T, columns=['X','Y','Z'])
输出
X Y Z
0 0 0 0
1 0 1 1
2 0 2 2
3 0 3 3
4 1 0 4
5 1 1 5
6 1 2 6
7 1 3 7
8 2 0 8
9 2 1 9
10 2 2 10
11 2 3 11
您用来从数据帧中的数据获取
arr
的逻辑是什么?X是第一个索引,Y是第二个索引,Z是arr[X,Y]的相应值