我正在使用熊猫数据框来清理和处理数据。但是,我需要将其转换为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] 删除。
我来说两句