Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中将元组的数据帧强制转换为numpy矩阵_Python_Arrays_Numpy_Matrix - Fatal编程技术网

在Python中将元组的数据帧强制转换为numpy矩阵

在Python中将元组的数据帧强制转换为numpy矩阵,python,arrays,numpy,matrix,Python,Arrays,Numpy,Matrix,我有一个数据帧 df = pd.DataFrame({'age' : [(1, 2), (1, 3), (1, 1)], \ 'year' : [(20, 30), (30, 40), (30, 40)]}) df Out[58]: age year 0 (1, 2) (20, 30) 1 (1, 3) (30, 40) 2 (1, 1) (30, 40) 我想把它转换成这样的numpy数组 array([[ 1,

我有一个数据帧

df = pd.DataFrame({'age' : [(1, 2), (1, 3), (1, 1)], \
                   'year' : [(20, 30), (30, 40), (30, 40)]})
df
Out[58]: 
      age      year
0  (1, 2)  (20, 30)
1  (1, 3)  (30, 40)
2  (1, 1)  (30, 40)
我想把它转换成这样的numpy数组

 array([[ 1,  2, 20, 30],
        [ 1,  3, 30, 40],
        [ 1,  1, 30, 40]])
i、 e.数据框中的一行是矩阵中的一行,数据框中的一个元组列是矩阵中的两列。数据帧中可能有更多的元组(导致数组中有更多的列)

所以,若
col\u names
是一个列名数组(这里
col\u names=['age','year']


我想要像
numpy\u array=some\u聪明的表达式(col\u name)

np堆叠。连接
以获得1D展平数组,然后重塑形状-

np.concatenate(np.concatenate(df.values)).reshape(df.shape[0],-1)
样本输出-

In [460]: np.concatenate(np.concatenate(df.values)).reshape(df.shape[0],-1)
Out[460]: 
array([[ 1,  2, 20, 30],
       [ 1,  3, 30, 40],
       [ 1,  1, 30, 40]])
或者,我们可以使用
np.hstack
获得扁平化版本-

np.hstack(np.hstack(df.values))

要选择特定的列,只需对这些列建立索引,获取数组数据并继续。因此,对于
col\u names
中的列名列表,请改用
df[col\u names].values

np堆叠。连接
以获得1D展平数组,然后重新整形-

np.concatenate(np.concatenate(df.values)).reshape(df.shape[0],-1)
样本输出-

In [460]: np.concatenate(np.concatenate(df.values)).reshape(df.shape[0],-1)
Out[460]: 
array([[ 1,  2, 20, 30],
       [ 1,  3, 30, 40],
       [ 1,  1, 30, 40]])
或者,我们可以使用
np.hstack
获得扁平化版本-

np.hstack(np.hstack(df.values))
要选择特定的列,只需对这些列建立索引,获取数组数据并继续。因此,对于
col\u names
中的列名列表,请改用
df[col\u names].values