将熊猫数据帧转换为numpy ndarray

最高89

我正在使用熊猫数据框来清理和处理数据。但是,我需要将其转换为numpy ndarray才能使用漏洞利用矩阵乘法。我将数据框变成具有以下内容的列表列表:

x = df.tolist()

这将返回以下结构:

[[1, 2], [3, 4], [5, 6], [7, 8] ...]

然后,我将其转换为如下的numpy数组:

x = np.array(x)

但是,以下打印:

print(type(x))
print(type(x[0]))

给出以下结果:

'numpy.ndarray'
'numpy.float64'

但是,我都需要它们都是numpy数组。如果不是来自pandas数据框,而我只是转换列表的硬编码列表,那么它们都是ndarray。如何从数据帧中创建列表,然后获取该列表,并使该列表中的列表成为ndarray?非常感谢您的阅读,这使我感到困扰了几个小时。

耶斯列尔

我认为您需要values

df = pd.DataFrame({'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0]})

print (df)
   C  D
0  7  1
1  8  3
2  9  5
3  4  7
4  2  1
5  3  0

x = df.values
print (x)
[[7 1]
 [8 3]
 [9 5]
 [4 7]
 [2 1]
 [3 0]]

然后通过索引选择:

print (x[:,0])
[7 8 9 4 2 3]

print (x[:,1])
[1 3 5 7 1 0]

print (type(x[:,0]))
<class 'numpy.ndarray'>

也可以转置数组:

x = df.values.T
print (x)
[[7 8 9 4 2 3]
 [1 3 5 7 1 0]]

print (x[0])
[7 8 9 4 2 3]

print (x[1])
[1 3 5 7 1 0]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章